环境如下:
solr4.7
IKAnalyzer2012FF_u1

配置同义词

第一步 将IKAnalyzer2012FF_u1放到solr-4.7.2/example/solr-webapp/webapp/WEB-INF/lib 目录下
第二步 修改schema.xlm文件
如下:

   <fieldType name="text_ik" class="solr.TextField">   <analyzer type="query" ><tokenizer class="org.wltea.analyzer.lucene.IKAnalyzerTokenizerFactory" useSmart="false"/><filter class="solr.LowerCaseFilterFactory"/><filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true" /></analyzer><analyzer type="index"><tokenizer class="org.wltea.analyzer.lucene.IKAnalyzerTokenizerFactory" useSmart="false"/><filter class="solr.LowerCaseFilterFactory"/><filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true" /></analyzer> </fieldType>

使用IKAnalyzer2012FF_u1的小伙伴可能要不开心了,报错了!“插件初始化失败”(自行对应english),
聪明一点的小伙伴要骂人了,他解压IKAnalyzer2012FF_u1文件到C:UsersAsusDesktopIKAnalyzer2012FF_u1orgwlteaanalyzerlucene目录发现没有IKAnalyzerTokenizerFactory。

没有就对了,官方的包就没有。
我来讲讲:
在没使用同义词之前大家的schema.xlm文件是这样的(分词器由analyzer标签包裹):

   <fieldType name="text_ik" class="solr.TextField">   <analyzer class="org.wltea.analyzer.lucene.IKAnalyzer"/> </fieldType>

如果要写成最上面的那种格式使用<tokenizer>标签包裹分词器的话,就需要用到继承了TokenizerFactory类的子类。
大家可以写一个TokenizerFactory类编译后重新打包。
TokenizerFactory类网上有很多一搜及到,但是我不会编译后重新打包。因为这个类需要导包,希望大家能分享我一篇关于编译需要导包的java文件的文章学习学习。
所以,我跋山涉水找到了加入TokenizerFactory的jar包。花了我三个积分呢,在这里我分享给大家镇文之宝。
链接: https://pan.baidu.com/s/1hsqZ7Go 密码: f39q

废两句话:

1.tokenizer标签就是分词器的意思,里面需要包裹分词器。
2.schema.xml里面<tokenizer>标签默认用的是WhitespaceTokenizerFactory,
就是根据空格来分词,但是中文词汇不是用空格隔开所以才有了中文分词器。

第三步 新建synonyms.txt文件,放在con目录下,保存同义词的字典格式如下

什么 => 啥
啥 => 什么

或者

什么,啥(逗号是英文格式下的)

注意:synonyms.txt文件写完必须另存为选择utf-8编码。

配置停止词和扩展词

停止词 的功能是过滤,把“啊”加入到停止词的字典里,比如搜索“你好啊”,solr会过滤掉“啊”,以“你好”去搜索。应该叫过滤词才好。

扩展词 的功能是强制让扩展词字典里的词不被中文分词器分开,叫它自定义词也好理解。

第一步 将IKAnalyzer.cfg.xml和stopword.dic以及ext.dic放到
webapp/WEB-INF/classes目录下,没有classes就新建。

stopword.dic是停止词的字典。里面写的是需要过滤的词或字。
ext.dic是扩展词的字典。里面写的是需要过滤的词或字。

第二步 编写三个文件, IKAnalyzer.cfg.xml的内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties>  <comment>IK Analyzer 扩展配置</comment><!--用户可以在这里配置自己的扩展字典     --><entry key="ext_dict">ext.dic;</entry> <!--用户可以在这里配置自己的扩展停止词字典--><entry key="ext_stopwords">stopword.dic;</entry> </properties>

注意 :两个dic文件必须是utf-8编码保存,第一行空出来,第二行开始写,之后每行只写一个词或字。

转载:https://segmentfault.com/a/1190000010295935

solr之使用IKAnalyzer配置同义词,停止词,扩展词。相关推荐

  1. solr配置同义词,停止词,和扩展词库(IK分词器为例)

    定义 同义词:搜索结果里出现的同义词.如我们输入"还行",得到的结果包括同义词"还可以". 停止词:在搜索时不用出现在结果里的词.比如is .a .are .& ...

  2. springboot基于Elasticsearch6.x版本进行ES同义词、停用词(停止词)插件配置,远程词典热加载及数据库词典热加载总结,es停用词热更新,es同义词热更新

    前言:ES版本差异较大,建议跨版本的同学,可以先了解一下版本区别,建议不要跨版本使用插件或者进行项目调试. 本总结主要基于6.x版本的6.5.1(6.2.2实测可用),分词器为IK,下载地址:http ...

  3. solr6.6配置IK中文分词、IK扩展词、同义词、pinyin4j拼音分词

    solr基本指令: jetty部署[推荐]: Linux: $ bin/solr start: Windows: bin\solr.cmd start 创建core: Linux: $ bin/sol ...

  4. IKAnalyzer配置扩展词库经验总结

    IKAnalyzer对于中文分词效果较好,但是在实际应用过程中经常会遇到分词效果不理想的情况,比如中文中夹杂的英文缩写,英文与数字混合(如软件版本号)等,这时就需要配置扩展词库.配置的主要方法为编辑I ...

  5. 充电复习之ES 扩展词库及热更新词库,扩展同义词词库,及热扩展词库

    1.es扩展词库在/usr/local/es/elasticsearch-node01/plugins/elasticsearch-analysis-ik-7.2.1/config中新建文件 new_ ...

  6. 笔记2 IKAnalyzer扩展词库

    参考 1.https://www.cnblogs.com/jmswag/p/9089366.html  Lucene IK分词器集成,词典扩展(详细,推荐看此博客) 2.https://blog.cs ...

  7. Windows下Solr的安装与配置,附DIH全量导入MySQL数据、IK分词器配置详解——不用集成Tomcat

    Solr是Apache开源的比较稳定的一款全文搜索引擎,也是市面上相对比较流行的一款全文搜索引擎,好不好用你用过之后自有判断.今天给大家分享一下它的安装与配置,我用的是7.7.2版本.废话不多说,开搞 ...

  8. IKAnalyzer 添加扩展词库和自定义词

    原文链接http://blog.csdn.net/whzhaochao/article/details/50130605 IKanalyzer分词器 IK分词器源码位置 http://git.osch ...

  9. 腾讯云docker下安装elasticsearch及IK分词器-扩展词-停止词Kibana

    1.拉取 docker pull elasticsearch:7.7.0 2.运行 docker run --name elasticsearch -d -e ES_JAVA_OPTS="- ...

最新文章

  1. ThreadPoolExecutor 的八种拒绝策略 | 含番外!
  2. 不是内部或外部命令,也不是可运行的程序 或批处理文件。(如果放了环境变量还是没有用的话)(已经解决)
  3. hdu 4027(线段树)
  4. Java clone() 浅克隆与深度克隆(转)
  5. iPhone 14进入代工试产阶段:首款打孔屏iPhone要来了
  6. 为特定的提交生成一个git补丁
  7. MyEclipse 8.5中文汉化教程,图文版【转】
  8. word生成目录和给目录添加虚线和页码
  9. shell中各种括号用法
  10. 部署ISA2006标准版防火墙
  11. Zynga和StarLark庆祝《Golf Rival》面世四周年
  12. ajax 点击下一页,ajax调用不会进入下一页
  13. 教你自己训练的pytorch模型转caffe(二)
  14. xpath中ends-with无法定位问题的解决办法
  15. R语言使用diag函数生成一个N行N列的单位矩阵
  16. 提交工程到git的分支上
  17. Wireshark抓包软件查看网线直连设备的IP地址
  18. 2017qq红包雨最强攻略
  19. json解析2 - 复杂json解析
  20. 鸡和兔关在一个笼子里,鸡有2只脚,兔有4只脚,没有例外。已知现在可以看到笼子里m个头和n只脚,求鸡和兔子各有多少只?(输出一组数据)

热门文章

  1. php 设置raw格式文件,u盘raw格式怎么改过来
  2. 实施工程师如何做好一次调研
  3. GoWithMi,一个可以买卖地块资源的分布式地图生态
  4. nhibernate 配置mysql_利用NHibernate与MySQL数据库交互
  5. PyQt5 基本窗口控件(状态栏/窗口/图标/提示消息/QLabel/文本类控件)
  6. 各大厂软件测试面试题+答案纯干货
  7. eclipse安装插件配置Android开发环境
  8. Echart报错echarts is not defined
  9. ROBO Pro的机械臂编程过程
  10. 练手写的python 淘宝购物车秒杀器 源码,成品链接,效果图