solr配置停止词,同义词和扩展词库

停止词:lucene的停止词是无功能意义的词,比如is 、a 、are 、”的”,“得”,“我” 等,这些词会在句子中多次出现却无意义,所以在分词的时候需要把这些词过滤掉。

扩展词库:就是不想让哪些词被分开,让他们分成一个词。

同义词:假设有一个电子商务系统,销售书籍,提供了一个搜索引擎,一天,市场部的人要求客户在搜索书籍时,同义词就是比如输入“电子”,除了展示电子相关的书籍,还需要展现“机器”相关的书籍。

以IK分词器为例子说明怎么配置。

1:配置停止词和扩展词库。

将IKAnalyzer解压文件夹下的stopword.dic和IKAnalyzer.cfg.xml复制到tomcat/webapps/solr/WEB-INF/classes下,再新建一个ext.dic,里面的格式和stopword.dic一致。

并修改IKAnalyzer.cfg.xml如下面的格式可以配置多个停止词或者扩展词库文件。

<properties> 
<comment>IK Analyzer 扩展配置</comment>
<!--用户可以在这里配置自己的扩展字典-->

<entry key="ext_dict">ext.dic;</entry>

<!--用户可以在这里配置自己的扩展停止词字典-->

<entry key="ext_stopwords">english_stopword.dic;stopword.dic</entry>

这样就完成了。我在扩展词库ext.dic里面加上了 呼吸式酒精测试 测试扩展词库成功 

2.同义词配置。

为了让例子简单,我们假设索引库只有两个字段。

1.在solr数据文件conf目录下schema.xml 中加入以下两个字段:

<field name="id" type="string" indexed="true" stored="true" required="true" />
<field name="description" type="text_syn" indexed="true" stored="true" />

在 schema.xml 中增加 text_syn 类型的定义:

<fieldType name="text_syn" class="solr.TextField">
    <analyzer type="query">
    <tokenizer class="solr.WhitespaceTokenizerFactory"/>
    <filter class="solr.LowerCaseFilterFactory"/>
    </analyzer>
   <analyzer type="index">
   <tokenizer class="solr.WhitespaceTokenizerFactory"/>
  <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="false" />
<filter class="solr.LowerCaseFilterFactory"/>
    </analyzer>

3.在相同的conf目录下的 synonyms.txt 中增加

machine => electronics

配置完成

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值