Специальные символы в фильтре Solr fq - PullRequest
5 голосов
/ 10 марта 2011

Я пытаюсь фильтровать с помощью fq для полей, имеющих специальные символы, особенно в скобках.Например, учитывая документ:

<result name="response" numFound="1" start="0">
  <doc>
    <arr name="town_snc">
      <str>Hartford (Connecticut)</str>
    </arr>
  </doc>
</result>

Я хочу сделать, например: ?fq:town_snc=Hartford (Connecticut)

Я не получаю никаких результатов;Я предполагаю, что скобки нужно экранировать, но я не смог найти метод экранирования.

Спасибо!

1 Ответ

13 голосов
/ 10 марта 2011

Использование «поля» qparser позволяет вам не выполнять экранирование:

fq={!field f=town_snc}Hartford (Connecticut)

Или вы можете использовать обычный синтаксический анализатор запросов lucene и использовать двойные кавычки (но тогда вы все равно должны избегать некоторых вещей.как цитаты)

fq=town_snc:"Hartford (Connecticut)"

Или вы можете использовать экранирование от обратной косой черты (просто не забывайте также экранировать пространство).

http://wiki.apache.org/solr/SolrQuerySyntax

...