elasticsearch,analyzer,stemming,Lucene,Tokenize,elasticsearch,Analyzer,Stemming" /> elasticsearch,analyzer,stemming,Lucene,Tokenize,elasticsearch,Analyzer,Stemming" />

Lucene 弹性搜索词干

Lucene 弹性搜索词干,lucene,tokenize,elasticsearch,analyzer,stemming,Lucene,Tokenize,elasticsearch,Analyzer,Stemming,我正在使用ElasticSerach,我想为英语设置基本词干。所以基本上,fighter返回fight或任何包含fight词根的单词 我有点困惑如何实现这一点。我阅读了分析器、标记器和过滤器,有多种词干分析算法可用于ElasticSearch。我只是不确定该使用哪种组合——snowball、stemmer、porter stem或同义词过滤器 此外,映射的示例也会非常有用。请注意。词干算法应用一系列规则(和/或字典查找,如KStem),但不能保证结果是正确的语言“根”(即引理) 例如,波特·斯泰

我正在使用ElasticSerach,我想为英语设置基本词干。所以基本上,fighter返回fight或任何包含fight词根的单词

我有点困惑如何实现这一点。我阅读了分析器、标记器和过滤器,有多种词干分析算法可用于ElasticSearch。我只是不确定该使用哪种组合——snowball、stemmer、porter stem或同义词过滤器

此外,映射的示例也会非常有用。

请注意。词干算法应用一系列规则(和/或字典查找,如KStem),但不能保证结果是正确的语言“根”(即引理)

例如,波特·斯泰默(Porter stemmer)将“腌制”和“海军陆战队”这两个词都转换成“马林”,这被认为是相当“侵略性”的一个词——对于大量的单词,它往往会产生相同的词干。还有一些比较保守的方法,例如S-Stemmer,它只将复数形式转换为单数形式(
org.apache.lucene.analysis.en.EnglishMinimalStemFilter

在研究论文中发现的词干分析方法的比较似乎支持KStem,认为它对英语文本最有效,但词干分析工具的选择在很大程度上取决于文档的词汇表。您的目标不是优化词干分析器的性能,而是优化搜索引擎的性能,因此在实践中,将其与系统的其他元素(尤其是查询扩展)分开进行测量并不是一个好主意

最好的解决方案是尝试elasticsearch中提供的许多不同的词干分析器(可以看到一个映射示例),并观察结果的精度和召回率。如果您没有查询的测试套件,那么您最好执行“典型”查询,并注意“奇怪”结果(词干分析器过于激进的影响)或“好”结果(过于保守的词干分析器)