2017-02-20 16 views
0

Одна запись в моих данных solr имеет поле со значением «NOT 123456». Так как «НЕ» является зарезервированным словом для негатива, когда я отправить запрос сКак вы вынуждаете поиск solr eDismax обрабатывать зарезервированное слово как литерал?

defType=edismax&q=NOT 123456

все записи исключающие тот, со значением «NOT 123456» возвращаются. Как мне изменить «НЕ», чтобы вместо этого рассматриваться как литерал?

ответ

1

Согласно Lucene Query Syntax, у вас есть два варианта здесь:

  1. Если вам не нужно искать зарезервированное слово прописными, вы могли бы просто использовать строчную форму. Это будет работать, потому что зарезервированные слова запускаются только тогда, когда все они имеют верхний регистр.
  2. Если вам нужна форма в верхнем регистре, вы должны увеличить зарезервированное слово в своем запросе с помощью «двойных кавычек», поскольку зарезервированные слова запускаются только тогда, когда они окружены пробелами.
+0

кажется, что использование строчных букв для зарезервированных слов действительно является ответом для моих данных, поскольку они не чувствительны к регистру, поэтому «не» соответствует «NOT». –