Как обработать все документы в Azure Search
Я хочу получить все документы от azure search
и отфильтровать с NOT
оператор. Например, я хочу получить все документы без термина wifi.
NOT
оператор не может быть использован сам по себе, из документации Lucene:
Оператор NOT нельзя использовать только с одним термином. Например, следующий поиск не даст результатов:
NOT "jakarta apache"
Для этого мы должны сопоставить все документы, а затем отфильтровать некоторые:
*:* NOT wifi
Вопрос: Как я могу сопоставить все документы в azure search
лайк *:*
в люцене? Заранее спасибо!
1 ответ
Один из способов - выполнить поиск по регулярному выражению, который соответствует всем документам, и отфильтровать ненужные с помощью оператора NOT. Обратите внимание, что поиск по регулярному выражению поддерживается только в полном синтаксисе запроса Lucene (queryType=full).
Например.
search = /. * / НЕ "Джакартский апач"&queryType=full.
Обратите внимание, что шаблон регулярных выражений "сопоставить все" может быть потенциально дорогим, поскольку он распространяется на все термины в полях поиска в индексе. Пожалуйста, убедитесь, что он соответствует вашим ожиданиям в отношении производительности.
Nate