训练solr识别昵称或名称变体
我很确定solr可以设置为在搜索过程中识别同义词。我想知道是否有可能对昵称也这么做——例如,搜索Robert会调出其中包含Bob的记录。刚刚找到一个页面,其中有一个叫Jon Moniaci的人,具体如何做: 基本上,使用以下行创建同义词文件:训练solr识别昵称或名称变体,solr,names,synonym,Solr,Names,Synonym,我很确定solr可以设置为在搜索过程中识别同义词。我想知道是否有可能对昵称也这么做——例如,搜索Robert会调出其中包含Bob的记录。刚刚找到一个页面,其中有一个叫Jon Moniaci的人,具体如何做: 基本上,使用以下行创建同义词文件: Bob, Robert, Bobby Jon的文件是,源于网站上常见的男性和女性昵称列表 保存到english_names.txt并将以下内容添加到solr配置中: <fieldType name="textEnglishName" class=
Bob, Robert, Bobby
Jon的文件是,源于网站上常见的男性和女性昵称列表
保存到english_names.txt并将以下内容添加到solr配置中:
<fieldType name="textEnglishName" class="solr.TextField" positionIncrementGap="100">
<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.ASCIIFoldingFilterFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.SynonymFilterFactory" synonyms="english_names.txt" ignoreCase="true" expand="true"/>
<filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="0" catenateNumbers="0" catenateAll="0" splitOnCaseChange="1"/>
<filter class="solr.ASCIIFoldingFilterFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
</analyzer>
</fieldType>
刚刚找到一个页面,其中有一个名叫Jon Moniaci的人,他知道如何做到这一点: 基本上,使用以下行创建同义词文件:
Bob, Robert, Bobby
Jon的文件是,源于网站上常见的男性和女性昵称列表
保存到english_names.txt并将以下内容添加到solr配置中:
<fieldType name="textEnglishName" class="solr.TextField" positionIncrementGap="100">
<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.ASCIIFoldingFilterFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.SynonymFilterFactory" synonyms="english_names.txt" ignoreCase="true" expand="true"/>
<filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="0" catenateNumbers="0" catenateAll="0" splitOnCaseChange="1"/>
<filter class="solr.ASCIIFoldingFilterFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
</analyzer>
</fieldType>