Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
训练solr识别昵称或名称变体_Solr_Names_Synonym - Fatal编程技术网

训练solr识别昵称或名称变体

训练solr识别昵称或名称变体,solr,names,synonym,Solr,Names,Synonym,我很确定solr可以设置为在搜索过程中识别同义词。我想知道是否有可能对昵称也这么做——例如,搜索Robert会调出其中包含Bob的记录。刚刚找到一个页面,其中有一个叫Jon Moniaci的人,具体如何做: 基本上,使用以下行创建同义词文件: Bob, Robert, Bobby Jon的文件是,源于网站上常见的男性和女性昵称列表 保存到english_names.txt并将以下内容添加到solr配置中: <fieldType name="textEnglishName" class=

我很确定solr可以设置为在搜索过程中识别同义词。我想知道是否有可能对昵称也这么做——例如,搜索Robert会调出其中包含Bob的记录。

刚刚找到一个页面,其中有一个叫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>

刚刚找到一个页面,其中有一个名叫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>