Поиск по шаблону в CloudSearch

Мне нужно выполнять запросы с подстановочными знаками для чисел в CloudSearch. Делать это с текстовыми данными легко -> xy*, но это дает ошибку при выполнении того же запроса для числовых полей. Я использую lucene в качестве парсера запросов. Пожалуйста, предложите, можно ли это сделать с помощью любых других парсеров.


person sidd607    schedule 19.05.2016    source источник


Ответы (2)


Поиск с подстановочными знаками не поддерживается для числовых полей. Из вашего вопроса неясно, какого результата вы ожидаете.

Если вы ожидаете совпадения диапазона чисел, вы можете использовать запрос диапазона:

numericField:[330 TO 339]

будет соответствовать документам, где numericField больше или равно 330 и меньше или равно 339.

Если, с другой стороны, вы ожидаете найти все документы, где первая и вторая цифры равны, например, тройкам, вам потребуется еще одно текстовое поле, содержащее строковое представление числа. Вы бы искали по нему так:

numericFieldAsText:33*

Это будет соответствовать 33, 331, 333, 330001 и т. д.

person maxa    schedule 20.05.2016
comment
У меня нет текстового представления числового поля. Есть ли способ получить те же результаты в числовых полях без добавления другого поля, имеющего строковое представление числа? - person sidd607; 20.05.2016

Вы можете использовать запрос фильтра как (and (prefix field=field_name 'xy')), если это структурированный запрос. но если это простой запрос, вы можете напрямую использовать xy* в поиске.

person SNishant    schedule 05.05.2017