solr 的 ReversedWildcardFilterFactory 调研
1.使用方法<fieldType name="text_rvswc" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.ReversedWildcardFilterFactory" withOriginal="true"
maxPosAsterisk="2" maxPosQuestion="1" minTrailing="2" maxFractionAsterisk="0"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
</analyzer>
</fieldType>
2.参数详解:
withOriginal:如果值为true,那么在相同的位置产生原始的和反向的标记。如果false,则只产生反向令牌。
maxPosAsterisk:指的是*最大在第几位会被翻转,默认是2.比如当值等于2的时候,搜索 *明星 和 女*明星 都会被翻转。建议默认值就行。
maxPosQuestion:指的是?号最大在第几位查询此会被翻转,默认为1。设置为0,1和maxposasterisk扭转单个的后缀查询
minTrailing:触发反转的附加参数,如果星号(“*”)的位置是低于这个分数查询标记长度。默认值为0.0f(禁用)
maxFractionAsterisk:查询单词星号(*)后面字符数量最小值。为了好的性能,这应该设置为大于1的值。默认为2。(推测:低于2的将不反转)。
3.功能测试:
3.1.测试和普通String类型相比,模糊查询性能
10w数据,单线程查询100次:平均 0.25s
3.1 测试和普通String类型相比,精确查询性能
10w数据,单线程查询100次:平均 0.45s
页:
[1]