2015-12-16 25 views
0

Solr的StandardTokenizer存在问题。Solr StandardTokenizer通配符在同一个单词中出现奇怪的行为

如果我在寻找:

text_field:lastname 

它会发现一些

如果我在寻找:

text_field:last*ame 

它会找到soething

如果我在寻找用于:

text_field:lastname; 

但是如果我搜索:

text_field:last*ame; 

搜索不返回任何东西。为什么? StandardTokenizer不应该从单词末尾去掉标点符号?基本上,如果我在一个单词中使用通配符和标点符号,则标点符号不再被分条。即使我们使用通配符,也有办法去掉标点符号吗?

回答

1

当您执行通配符查询时,Solr不会对查询执行任何分析。该术语仅用于对存储在该字段中的令牌进行通配符匹配。 StandardTokenizer将在字边界上拆分,并且;将被视为边界 - 这将意味着索引的令牌不包含;,但查询会。

您可能想要删除查询图层中的;

Here是SOLR文档的链接,进一步解释了为什么通配符和其他multiterm查询不经过分析。

+0

谢谢你的回答。它澄清了事情。但是,除了解析字符串并去除字符串之外,还有一种简单的方法可以将标点符号与Solr中的通配符结合使用(可能会将某些内容放在配置中)? – DanutClapa

相关问题