更改schema.xml以禁用类似发声词的词干

时间:2014-03-18 12:34:46

标签: solr

我必须在我的搜索应用程序中进行一些更改,现有代码提供了一种显示结果的方法,这些结果在发音中与输入搜索的单词类似,例如。用户输入'Julie',搜索结果也会输入'July'。我应该在schema.xml中为此做些什么改变?基本上我想知道锄头在这些地方关闭堵塞。

P.S.我是一个新的bie,所以请原谅我的小疑问,我已经尝试了谷歌搜索。 Thanks¬

1 个答案:

答案 0 :(得分:0)

您需要使用solr.PhoneticFilterFactory,并且可以使用一些编码器。我推荐DoubleMetaphone。

您可以查看here了解详情。

您需要为新类型的语音匹配定义新字段。 那么,第1步,定义一个新类型

<fieldType name="phonetic" class="solr.TextField" positionIncrementGap="100">
    <analyzer>
        <tokenizer class="solr.StandardTokenizerFactory"/>
        <filter class="solr.PhoneticFilterFactory" encoder="DoubleMetaphone" inject="false"/>
        <filter class="solr.LowerCaseFilterFactory"/>
    </analyzer>
</fieldType>

步骤2.在新字段中使用此类型:

<field name="phoneticname" type="phonetic" multiValued="true" />

步骤3.添加复制字段以将原始名称字段复制到phoneticname字段

<copyField source="Name" dest="phoneticname"/>

然后在您的搜索查询中,我建议您在原始名称上使用更高的提升值搜索字段,名称和语音名称,这样您就可以在名称上获得完全匹配的弹出搜索结果,并在语音上匹配名称分数较低。