Solr - Wild Card搜索因Stemming Methods而异

时间:2012-08-23 14:36:13

标签: solr wildcard stemming

我的机器中有两个版本的solr。说SolrVer1SolrVer2

SolrVer1已应用于字段类型text_en_splitting

上的词干提取方法
<filter class="solr.KeywordMarkerFilterFactory" protected="protwords.txt" ignoreCase="true"/>
 <filter class="solr.PorterStemFilterFactory" ignoreCase="true"/>

SolrVer2已应用于字段类型text_en_splitting

上的词干提取方法
<filter class="solr.SnowballPorterFilterFactory" language="English" protected="protwords.txt"/>

它对于常规搜索几乎相同,但在使用通配符搜索时,通配符搜索不会在SolrVer1上提供带语法的结果

与使用ray*进行搜索一样,与SolrVer1相比,SolrVer2返回的数据要少得多。当我观察结果时,我发现SolrVer1不返回仅包含rayrays的数据。

我不知道应该在哪里使用SnowballPorterFilterFactory以及我应该使用PorterStemFilterFactory的位置。它们的优点和缺点是什么?

有人能对这种行为有所了解吗?

由于

2 个答案:

答案 0 :(得分:1)

需要知道rayrays的词干分析器的输出结果。

尝试在Porter stemmer在线工具中提取它们:http://qaa.ath.cx/porter_js_demo.html。它输出rai!这就是你没有与Porter stemmer进行ray*匹配的原因。

这里有一个雪球塞的工具:http://snowball.tartarus.org/demo.php。 这会为rayray输出rays,这就是您获得结果的原因。

您可能需要阅读此内容以比较两个词干分析器:http://snowball.tartarus.org/texts/introduction.html

看起来像雪球的目的是解决波特这样的缺点。

答案 1 :(得分:0)

Analyzers

On wildcard and fuzzy searches, no text analysis is performed on the search word.

由于在查询时没有对wilcard搜索进行分析,因此在查询时间内将应用词干分析器 根据限制器的产生结果,结果会有所不同。