【问题标题】:Training solr to recognize nicknames or name variants训练 solr 以识别昵称或名称变体
【发布时间】:2013-07-09 14:24:44
【问题描述】:

我很确定 solr 可以设置为在搜索期间识别同义词。我想知道是否可以对昵称做同样的事情——例如,搜索“Robert”会提取包含“Bob”的记录。

【问题讨论】:

    标签: solr names synonym


    【解决方案1】:

    刚刚找到一个名为 Jon Moniaci 的人的页面,具体操作如下: http://bitsandpieces.jonmoniaci.com/2010/05/searching-common-nicknames-in-solr/

    基本上,使用如下行创建一个同义词文件:

    Bob, Robert, Bobby
    

    (Jon 的档案是here,来源于http://usefulenglish.ru/ 上常见的男性和女性昵称列表)

    保存到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>
    

    然后将作者字段指定为textEnglishName 字段:

    <fields>
      <field name="name" type="textEnglishName" indexed="true" stored="false"/>
    </fields>
    

    【讨论】:

      猜你喜欢
      • 2012-08-26
      • 2021-06-17
      • 2016-11-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-21
      • 2018-04-26
      • 1970-01-01
      相关资源
      最近更新 更多