2013-09-02 3 views
1

Я использую Solr 4.0 с помощью функции solnet. Я сталкиваюсь с проблемой с фильтром, в то время как имя фильтра содержит «(» и «)».Фильтр не работает, если имя фильтра содержит "(" и ")" в Solr

например. Название фильтра: «Test (test) Test2». У меня возникла ошибка при фильтрации с помощью этого типа фильтра.

Ошибка The remote server returned an error: (400) Bad Request.

Как справиться с такой ситуацией? Есть ли другой путь?

ответ

2

Lucene поддерживает экранирование специальных символов, которые являются частью синтаксиса запроса. Список специальных символов являются

    • & & || !() {} []^"~ *: \

Чтобы избежать эти символы, используйте \ перед символом Например, для поиска (1 + 1):. 2 используйте запрос:

\ (1 \ +1 \) \: 2

Источник -

http://lucene.apache.org/core/2_9_4/queryparsersyntax.html#Escaping Специальные символы