发表于 2016-12-15 09:27:37

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]
查看完整版本: solr 的 ReversedWildcardFilterFactory 调研