Solr过滤器中的特殊字符fq

yit*_*ton 5 solr escaping filter special-characters

我正在尝试过滤fq具有特殊字符的字段,尤其是括号.例如,给定文件:

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

我想做,例如 ?fq:town_snc=Hartford (Connecticut)

我没有得到任何结果; 我认为括号需要转义,但我无法找到转义方法.

谢谢!

Yon*_*nik 13

使用"field"qparser可以让你不必进行任何转义:

fq={!field f=town_snc}Hartford (Connecticut)
Run Code Online (Sandbox Code Playgroud)

或者你可以使用普通的lucene查询解析器并使用双引号(但是你必须仍然可以逃避一些像引号这样的东西)

fq=town_snc:"Hartford (Connecticut)"
Run Code Online (Sandbox Code Playgroud)

或者你也可以使用反斜杠转义(只记得也逃避空间).

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