如何在Solr中搜索:)

如何在Solr中搜索:),solr,Solr,如何在Solr中搜索特定标点符号,例如:)?我已尝试对文本进行URL编码,但仍收到以下消息: org.apache.solr.search.SyntaxError: Cannot parse ':': Encountered " ":" ": "" at line 1, column 0. Was expecting one of: <NOT> ... "+" ... "-" ... <BAREOPER> ... "(" ... "*" ... <QUOTED>

如何在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> ...
"*" ...
org.apache.solr.search.SyntaxError:无法分析“:”:在第1行第0列遇到“:”:”。
我期待的是:
...
"+" ...
"-" ...
...
"(" ...
"*" ...
...
...
...
...
...
"[" ...
"{" ...
...
...
...
"*" ...
此外,我需要在文本字段而不是字符串字段上执行此搜索。我应该如何配置分析器以保存标点符号


请注意,由于两个名为“Smiley”的Solr撰稿人数量众多,因此无法对主题进行编辑。

您对文本字段有什么配置?
如果使用StandardTokenizerFactory或word delimiter筛选器,则应注意不要在Puntation上发生拆分操作。
您可以使用WhitespaceTokenizerFactory或KeywordTokenizerFactory定义自定义字段,并在其上使用类似小写的其他过滤器

此外,Solr/Lucene在某些操作中使用了一些字符,例如+-!(){}[]^“~*?:
您需要用反斜杠转义特殊字符。请选中(

而不是:)搜索“\:\)”,两个字符:,)在SOLR中都有特殊含义。
对于所有特殊运算符,您都需要使用“\”字符作为前缀进行转义。

谢谢,WhitespaceTokenizerFactory可能会在这里提供帮助。我很惊讶没有
\b
字边界标记器,来捕获(即
lol:)
作为两个标记
lol
:)
。至少在中没有提到这类东西。不确定。bu您可以查看PatternTokenizerFactory,它可以帮助您拆分单词和字符。谢谢。我不想看到如何让Solr实际索引smiley等。