我正在尝试使用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)
我没有任何结果。我认为括号需要转义,但是我找不到转义方法。

谢谢!

最佳答案

使用“field” qparser可以使您不必进行任何转义:

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

或者,您可以使用常规的lucene查询解析器并使用双引号(但随后您仍必须转义一些诸如引号的内容)
fq=town_snc:"Hartford (Connecticut)"

或者您也可以使用反斜杠转义(只记得也要逃脱空格)。

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

10-08 17:58