Как обработать все документы в 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

Другие вопросы по тегам