我有这个词干字段:
<fieldtype name="textes" class="solr.TextField">
<analyzer type="index">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="1" catenateNumbers="1" catenateAll="0" splitOnCaseChange="1"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords-es.txt" enablePositionIncrements="true"/>
<filter class="solr.SnowballPorterFilterFactory" language="Spanish" protected="protwords-es.txt"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="1" catenateNumbers="1" catenateAll="0" splitOnCaseChange="1"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true"/>
<filter class="solr.SnowballPorterFilterFactory" language="Spanish" protected="protwords-es.txt"/>
</analyzer>
</fieldtype>
搜索查询
alquileres
(rents) 的预期结果将是 alquiler
(rent) 的匹配项。但是,当我转到 Solr 管理站点中的“字段分析”并检查 alquiler
的索引值和 alquileres
的查询值时,会发生以下情况:alquiler
时,它会进入 alquil
。 alquileres
时,它会变成 alquiler
。 因此,搜索单词的复数形式 (
alquileres
) 的简单情况与其单数形式 ( alquiler
) 不匹配。索引和查询不应该都归入同一个词干(
alquiler
或 alquil
)吗?这是算法的限制还是我的误解/错误配置? 最佳答案
雪球词干非常有限……使用字典(Hunspell 词干分析器)可以获得更好的结果:http://wiki.apache.org/solr/Hunspell
关于Solr Snowball 词干分析器与西类牙语不一致,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8386515/