CloudSearch, Как найти документы, где ключ не определен?

Здесь достаточно простой вопрос. Как с помощью CloudSearch найти объект, для которого НЕ определен определенный ключ/свойство.

например. Я все время храню объекты Car без индексации их цены. Теперь я начал индексировать объекты Car с их msrp... как мне найти объекты Car, хранящиеся без какой-либо индексированной цены?

(и цена: ноль) (и цена: неопределенная) и другие подобные «ложные» утверждения и их строковые перестановки не работают.

Я использую AWS SDK в Node.js.

ТИА!

Нико


person nemo    schedule 21.09.2015    source источник


Ответы (1)


Вариант, который будет работать без какой-либо переиндексации, — это поиск по диапазону, например

(NOT (range field=price [0,}))

который соответствует автомобилям с ценой, которая не находится между 0 и бесконечностью (например, автомобили без цены). См. этот ответ для обсуждения других вариантов.

Примечание: у меня сложилось впечатление, что вы можете использовать CloudSearch для хранения своих данных. Если это так, я бы подумал об использовании хранилища данных (предназначенного для хранения данных), а не CloudSearch (поисковой системы). Во-первых, это значительно упростит такой запрос.

person alexroussos    schedule 21.09.2015
comment
эй спасибо за предложение! просто к сведению, я не использую cloudsearch в качестве хранилища данных. он просто также содержит запрашиваемые поля наших данных. - person nemo; 22.09.2015
comment
Хорошо, круто, это означает, что вы можете рассмотреть некоторые другие варианты. Я думаю, что стоит подумать о том, чтобы установить для вещей без цены какое-то контрольное значение, например -1. - person alexroussos; 22.09.2015
comment
ну и да и нет... автомобили без цены не имеют цены, потому что раньше мы не заботились о цене (на самом деле, у автомобилей всегда есть цены, к сожалению :( ) - person nemo; 22.09.2015
comment
Конечно, но вы можете легко проверить это на любом языке, который вы используете (node.js)? - person alexroussos; 22.09.2015