【问题标题】:Solr - Wild Card Search varies with Stemming MethodsSolr - 通配符搜索因词干方法而异
【发布时间】:2012-08-23 14:36:13
【问题描述】:

我有 2 个版本的 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* 搜索一样,SolrVer1SolrVer2 相比返回的数据非常少。当我观察结果时,我发现SolrVer1 不返回只有rayrays 的数据。

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

任何人都可以知道这种行为吗?

谢谢

【问题讨论】:

    标签: solr wildcard stemming


    【解决方案1】:

    需要知道rayrays 的词干分析器输出什么。

    尝试使用 Porter 词干分析器在线工具对它们进行词干提取:http://qaa.ath.cx/porter_js_demo.html。它输出rai!这就是你没有得到任何与 Porter 词干分析器匹配的 ray* 的原因。

    这里有一个雪球词干分析工具:http://snowball.tartarus.org/demo.php。 这将为rayrays 输出ray,这就是您获得结果的原因。

    您可能想阅读这篇文章来比较两个词干分析器:http://snowball.tartarus.org/texts/introduction.html

    看起来像雪球一样旨在解决波特的这些缺点。

    【讨论】:

    • 感谢@arun,您的回复。它真的很有帮助。所以你建议我应该使用SnowballPorterFilterFactory 吗?
    • 一般来说,雪球(包括 Porter)词干分析器被认为具有攻击性,这意味着它们会将很多单词映射到同一个词干。很难说你应该使用哪个词干分析器,因为这取决于你的搜索需求。我建议向您的客户询问示例。您应该阅读 wiki.apache.org/solr/LanguageAnalysis#Stemming 以了解各种 Solr 词干分析器之间的差异,并根据您的需要选择正确的。
    • 感谢@arun 的回复,我想你是对的,我会向我的客户询问示例。 :)
    【解决方案2】:

    Analyzers

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

    由于在查询时不对通配符搜索进行任何分析,因此将在查询时应用词干分析器。
    结果会有所不同,具体取决于词干分析器产生的内容。

    【讨论】:

    • 感谢@Jayendra,您的回复。是的,我看到通配符搜索结果因应用在它们上的词干分析器而异。
    猜你喜欢
    • 1970-01-01
    • 2012-08-29
    • 1970-01-01
    • 2016-10-25
    • 2011-03-14
    • 1970-01-01
    • 2012-04-03
    • 1970-01-01
    相关资源
    最近更新 更多