我用德语索引数据,但结果不是很好,所以我试图找到一种方法并改进搜索。
架构非常简单:
<fields>
<field name="id" type="string" indexed="true" stored="true" required="true" />
<field name="title" type="text_de" indexed="true" stored="true" required="true" />
<field name="_version_" type="long" indexed="true" stored="true" multiValued="false" />
</fields>
标题是这样配置的:
<fieldType name="text_de" class="solr.TextField" positionIncrementGap="100">
<analyzer>
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.StopFilterFactory" ignoreCase="true" words="lang/stopwords_de.txt" format="snowball" enablePositionIncrements="true"/>
<filter class="solr.GermanNormalizationFilterFactory"/>
<filter class="solr.GermanLightStemFilterFactory"/>
<!-- less aggressive: <filter class="solr.GermanMinimalStemFilterFactory"/> -->
<!-- more aggressive: <filter class="solr.SnowballPorterFilterFactory" language="German2"/> -->
</analyzer>
</fieldType>
如果我应该选择“不那么激进”或“更激进”的过滤器而不是 GermanLightStemFilterFactory,我该如何决定要进行哪些改进?
我可以在查询期间进行 AB 测试吗?一个查询告诉 solr 使用 GermanMinimalStemFilterFactory,另一个查询使用 SnowballPorterFilterFactory?这样我就可以知道哪个词干表现更好。