如何在Solr中搜索:)

时间:2013-05-23 10:26:22

标签: solr

如何在Solr中搜索特定标点符号,例如:)?我已尝试对文本进行URL编码,但我仍然收到此消息:

org.apache.solr.search.SyntaxError: Cannot parse ':': Encountered " ":" ": "" at line 1, column 0.
Was expecting one of:
<NOT> ...
"+" ...
"-" ...
<BAREOPER> ...
"(" ...
"*" ...
<QUOTED> ...
<TERM> ...
<PREFIXTERM> ...
<WILDTERM> ...
<REGEXPTERM> ...
"[" ...
"{" ...
<LPARAMS> ...
<NUMBER> ...
<TERM> ...
"*" ...

此外,我需要在文本字段上执行此搜索,而不是在字符串字段上执行此搜索。如何配置分析仪以节省标点符号?

请注意,由于两名多产的Solr贡献者名为“Smiley”,因此searching google无法获得该主题!

2 个答案:

答案 0 :(得分:3)

您对文本字段有哪些配置?
你应该注意分裂没有发生在例如puntuations上如果使用StandardTokenizerFactory或word分隔符过滤器 您可以使用WhitespaceTokenizerFactory或KeywordTokenizerFactory定义自定义字段,并在其上设置更小的过滤器。

此外,Solr / Lucene使用某些字符进行某些操作,例如: + - ! (){} [] ^“〜*?:
您需要使用反斜杠转义特殊字符。查看Escape Special Characters

答案 1 :(得分:1)

而不是:)搜索“\:\)”,两个字符:,)在SOLR中具有特殊含义。 对于你需要通过前缀'\'char。

来逃脱的所有特殊操作