Список запрещенных символов в запросе Lucene для Solr - PullRequest
0 голосов
/ 07 декабря 2018

Я установил поисковую систему Solr в базе данных Riak.Когда я пытаюсь выполнить поиск по следующему запросу:

my_field:#

I Ошибка запроса на обработку из Solr

Я также пытался выполнить запрос следующим образом

my_field:"#"

Редактировать :

В конце концов я нашел решение для символа #.(Кодируя его с помощью кода URI %23).

Есть ли полный список запрещенных символов в запросе Lucene для Solr?

Ответы [ 2 ]

0 голосов
/ 08 декабря 2018

Ваша проблема не в том, что "#" является запрещенным символом в запросах Solr, а в способе выполнения запроса - с использованием браузера, возможно, из встроенной консоли Solr в Riak.

ЭтоСимвол требует кодировки при отправке в URL (см. Кодировка процента в URI , RFC 3986 ).В этом случае ваше решение является правильным.Полный список:

! # $ & ' ( ) * + , / : ; = ? @ [ ]

Тем не менее, он не запрещен в запросах Solr в соответствии с Избегающие специальные символы последней справочной системы Solr:

+ - && || ! ( ) { } [ ] ^ " ~ * ? : /

Эта проблема не должна возникать при программной отправке запроса.

0 голосов
/ 08 декабря 2018

Проблема с # заключается в том, что он имеет специальные значения в URL .Таким образом, ваш браузер никогда не отправляет его на сервер Solr.# обозначает локальный якорь, и все, что после него никогда не отправляется на сервер.

Так что, если у вас есть строка HTTP-запроса, такая как ?q=field:#<whatever>, Solr получит от вашего браузера только?q=field:.Это недопустимый запрос.

Это не зависит от того, какие символы должны быть экранированы в синтаксисе запроса Solr (или Lucene) .

...