Как избежать специальных слов, таких как «И», «ИЛИ» в строке эластичного поискового запроса - PullRequest
0 голосов
/ 06 ноября 2018

Я пытаюсь построить запрос строки известичего поиска. Упоминается, что зарезервированные или специальные символы должны быть экранированы.

https://www.elastic.co/guide/en/elasticsearch/reference/2.1/query-dsl-query-string-query.html#_reserved_characters

Зарезервированные символы: + - = && || > <! () {} [] ^ "~ *?: \ / </p>

Неправильное экранирование этих специальных символов может привести к синтаксической ошибке, которая препятствует выполнению вашего запроса. "

Мой вопрос таков: как я могу избежать «особых слов», таких как «И» или «ИЛИ». Например, я хотел бы получить документы, соответствующие тексту «СЕЙЧАС ИЛИ НИКОГДА» (для всех / любых полей) и имеющие статус «активный» ИЛИ «ожидающий рассмотрения». Похоже, что приведенный ниже запрос не работает (ИЛИ не может быть сброшен с помощью эластичного поиска).

NOW \OR NEVER status:(active OR pending) 

1 Ответ

0 голосов
/ 06 ноября 2018

Вы можете попробовать заключить текст в двойные кавычки:

GET your_index/_search?q=status:(active OR pending) AND "NOW OR NEVER"
...