我正在尝试使用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