如何在 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> ...
"*" ...
此外,我需要在文本字段而不是字符串字段上执行此搜索。我应该如何配置分析器以保存标点符号?
请注意 searching google由于两个名为“Smiley”的多产 Solr 贡献者,这个主题是不可能的!
最佳答案
您对文本字段进行了哪些配置?
你应该注意拆分不会发生在标点符号上,例如如果使用 StandardTokenizerFactory 或单词分隔符过滤器。
您可以使用 WhitespaceTokenizerFactory 或 KeywordTokenizerFactory 定义自定义字段,并在其上添加更多过滤器(如小写字母)。
此外,Solr/Lucene 还使用一些字符进行某些操作,例如+ - ! ( ) { } [ ] ^ "~ * ? :
您需要使用反斜杠转义特殊字符。检查Escape Special Characters
关于solr - 如何搜索:) in Solr,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16711487/