我遇到了Solr的StandardTokenizer问题。
如果我正在寻找:
text_field:lastname
它会找到一些东西
如果我正在寻找:
text_field:last*ame
它会找到soething
如果我正在寻找:
text_field:lastname;
但如果我搜索:
text_field:last*ame;
搜索没有返回任何内容。为什么? StandardTokenizer不应该从单词的末尾去掉标点符号吗?基本上,如果我在一个单词中使用外卡和标点符号,则标点符号不再是条纹。即使我们使用通配符,还有一种方法可以删除标点符号吗?
答案 0 :(得分:1)
当您进行通配符查询时,Solr不会对查询执行任何分析。该术语仅用于对为该字段存储的令牌进行外卡匹配。 StandardTokenizer
将在字边界上拆分,;
将被视为边界 - 这意味着索引的令牌不包含;
,但查询将会。{/ p>
您可能希望删除查询图层中的;
。
Here是SOLR文档的链接,进一步解释了为什么通配符和其他多项查询不进行分析。