1配置同义词首先是要基于中文分词的基础上进行的,如果检索关键词不能够进行中文分词那么是查询不到相关的同义词的(如果solr没有配置同义词,请参考附录进行配置,配置完成后进行后续操作)

2 如果是IKAnalyzer中文分词修改fileType text_ik,如果是mmseg4j中文分词修改fileType text_mmseg4j,添加同义词的filter,

<filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt"

ignoreCase="true" expand="true" />如下图所示:

或者

3修改C:\solr\apache-solr-3.4.0\example\multicore\core0\conf\synonyms.txt

添加 台湾,台灣,臺灣 南京,金陵,建康这些词语都是表示一个意思,修改完之后另存为UTF-8格式,要不然是不会起效果的。

4 reindex solr数据并重启tomcat之后查询分词结果,如下面的红框结果代表同义词添加成功。

5 输入建康查询到三笔数据,分别是南京,金陵,建康,整合完成。

附录:中文分词器的配置说明(IKAnalyzer和mmseg4j)

1 IKAnalyzer分词器配置。

1.1拷贝IKAnalyzer2012_u6\IKAnalyzer2012_u6.jar到C:\apache-tomcat-6.0.32\webapps\

solr\WEB-INF\lib文件夹下面

1.2 在C:\apache-tomcat-6.0.32\webapps\solr\WEB-INF文件夹下面新建classes文件夹,拷贝IKAnalyzer2012_u6\IKAnalyzer.cfg.xml和IKAnalyzer2012_u6\stopword.dic到classes文件夹里面,修改IKAnalyzer.cfg.xml,新增

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

在classes下面新建ext.dic文件,ext.dic里面是新增自己要添加的扩展词,stopword.dic里面是自己新增的停止词,有些词语分词没什么意义,所以我们就要把它过滤掉,例如 a an and 啊 哦,修改完之后把编码保存为UTF-8格式,要不然不起效果,

1.3 修改C:\solr\apache-solr-3.4.0\example\multicore\core0\conf\schema.xml文件,新增类型text_ik,title_search字段类型改成text_ik。

<!-- 我添加的IK分词 -->

<fieldType name="text_ik" class="solr.TextField">

<analyzer type="index" isMaxWordLength="false" class="org.wltea.analyzer.lucene.IKAnalyzer"/>

<analyzer type="query" isMaxWordLength="true" class="org.wltea.analyzer.lucene.IKAnalyzer"/>

</fieldType>

<field name="title_search" type="text_ik" indexed="true" stored="true"/>

1.4 reindex solr数据之后,进行查询,可以查看分词效果。

1.5 搜索足球,得到这笔数据,分词成功。

2 mmseg4j分词器配置。

2.1把mmseg4j-1.8.5\dist下面的所有jar文件拷贝到C:\apache-tomcat-6.0.32\webapps\

solr\WEB-INF\lib文件夹下面

2.2 拷贝data到C:\solr\apache-solr-3.4.0\example\multicore中(与core文件平级),并改名为dic。

2.2.1 chars.dic,是单个字,和对应的频率,一行一对,字在全面,频率在后面,中间用空格分开。这个文件的信息是 complex 模式要用到的。在最后一条过虑规则中使用了频率信息。从 1.5 版后已经把它打包进 jar 里,一般不用关心它。不过可以在词库目录下放一个同名文件覆盖它。

2.2.2 units.dic,是单位的字,如:分、秒、年。这一文件是我在 mmseg4j 1.6 后加入的,也是一行一条。主要是在数字后面的单位信息切分好,不与words.dic中的词有混淆。同时也打包进 jar 里,目前还是试行,如果不喜欢它,可以用空的文件放到词库目录下覆盖它。

2.2.3 words.dic,是核心的词库文件,一行一条,不需要其它任何数据(如词长)。1.0 版是用 rmmseg(ruby 的 mmseg 实现) 的词库。1.5版后 mmseg4j 改用 sogou 词库,可以 http://www.sogou.com/labs/dl/w.html 找到下载。然后我把它去了频率等信息,并转为 UTF-8 编码。

2.2.4 words-my.dic,是自定义词库文件(其实是 mmseg4j 可以从多个文件读取词)。这功能是 1.6 版加入的。它的格式与 words.dic 一样,只不过 XXX 部分是如您自己写的名字,如:源码包里的 data/words-my.dic。注意:自定义词库文件名必需是 "words" 为前缀和 ".dic" 为后缀。

2.2.5修改完之后把编码保存为UTF-8格式,要不然不起效果,

2.3 修改C:\solr\apache-solr-3.4.0\example\multicore\core0\conf\schema.xml文件,新增类型text_mmseg4j,title_sort字段类型改成text_mmseg4j。

<!-- mmseg4j分词器 -->

<fieldType name="text_mmseg4j" class="solr.TextField" >

<analyzer type="index">

<tokenizer class="com.chenlb.mmseg4j.solr.MMSegTokenizerFactory" mode="complex" dicPath="../dic" /><!--此处为分词器词典所处位置-->

</analyzer>

<analyzer type="query">

<tokenizer class="com.chenlb.mmseg4j.solr.MMSegTokenizerFactory" mode="complex" dicPath="../dic" /><!--此处为分词器词典所处位置-->

</analyzer>

</fieldType>

<field name="title_sort" type="text_mmseg4j" indexed="true" stored="true"/>

2.4 reindex solr数据之后,进行查询,可以查看分词效果。

2.5 搜索足球,得到这笔数据,分词成功。

solr中文同义词检索的配置讲解相关推荐

  1. linux php mysql 中文_Linux下PHP+MySQL+CoreSeek中文检索引擎配置 | 系统运维

    说明: 操作系统:CentOS 5.X 服务器IP地址:192.168.21.127 Web环境:Nginx+PHP+MySQL 站点根目录:/usr/local/nginx/html 目的:安装co ...

  2. mysql coreseek_Linux下PHP+MySQL+CoreSeek中文检索引擎配置

    说明: 操作系统:CentOS 5.X 服务器IP地址:192.168.21.127 Web环境:Nginx+PHP+MySQL 站点根目录:/usr/local/nginx/html 目的:安装co ...

  3. Solr - 中文分词器IK Analyzer的简介及配置

    简介 IK Analyzer 是一个开源的,基于 java 语言开发的轻量级的中文分词工具包.它是以开源项目Luence 为应用主体的,结合词典分词和文法分析算法的中文分词组件,IK 实现了简单的分词 ...

  4. 初识lunece(同义词检索)

    1.首先创建索引 package com.sunmap.analyzer;import java.io.File; import java.io.IOException;import org.apac ...

  5. Solr之拼音检索。

    拼音检索中国人的专用检索,例如:中文内容为"中国"的输入 "zhongguo"."zg"."zhonggu 全拼".&q ...

  6. java solr_通过Java访问Solr服务实例及相关配置

    一.通过Java访问Solr服务(手动创建索引库) 1.创建项目,配置环境(导包及相关文件) 1.SolrJ核心包 /solr-4.10.3/dist/solr-solrj-4.10.3.jar 2. ...

  7. solr 中文分词 mmseg4j 使用例子 ,NGramTokenizerFactory

    solr 中文分词 mmseg4j 使用例子 版权信息: 可以任意转载, 转载时请务必以超链接形式标明文章原文出处, 即下面的声明. 原文出处:http://blog.chenlb.com/2009/ ...

  8. solr 6.1.0 的配置及简单使用

    2019独角兽企业重金招聘Python工程师标准>>> 第一部分 配置部分 jdk 1.8  +  solr 6.1.0 + php扩展 2.4.0 jdk路径:   /usr/lo ...

  9. solr 5.3.1安装配置

    1.下载Solr5.3.1 http://mirror.bit.edu.cn/apache/lucene/solr/5.3.1/ wget http://mirror.bit.edu.cn/apach ...

最新文章

  1. PHP操作MYSQL--PDO
  2. python字符串与文本处理技巧(1):分割、首尾匹配、模式搜索、匹配替换
  3. Redis运维和开发学习笔记(1) Redis简介
  4. 脚踏实地,才能顶天立地!
  5. Matlab符号数学(Symbolic Math with MATLAB)MATLAB解方程
  6. 明明是数字“1000”转换成整形时却报错---BOM 非法字符 /65279(FEFF) big endian(FEFF)和little endian(FFFE) 模式
  7. 分享2个堪称黑科技的Ai一键抠图网站 让你秒变PS抠图大神
  8. 【Tips】如何批量安装和导出Python项目的依赖库?
  9. ARM实现LED灯亮灭
  10. python读取csv求平均数_python列表切片读取csv数据计算导购客单价.py
  11. 基于Scrapy的交互式漫画爬虫
  12. Python爬取各种类型网站数据(视频,图片居多)
  13. hpuoj 1725: 感恩节KK专场——特殊的比赛日期 (素数判断)
  14. 数据类型_function_函数概论
  15. NUS-WIDE-10K数据集制作
  16. 算术基本定理证明相关引理与见解
  17. oracle 关于小数点为小数的格式化
  18. 2021双十一京东活动脚本
  19. 计算机word怎么设置页眉,在Word中插入不同页眉的技巧-word技巧-电脑技巧收藏家...
  20. linux下日志查看命令

热门文章

  1. JavaScript-常见数组内置方法
  2. Whitestorm.js入门
  3. Maven 标签scop值配置介绍
  4. 批处理Bat建立微信多开程序
  5. Java后端使用Freemarker导出word文档的各种细节
  6. matlab 大学物理,Matlab在大学物理课程教学中的应用
  7. 基因家族进化分析之DNA序列批量获取
  8. mysql 小_mysql小脚本
  9. CC00056.bigdatajava——|Java分支结构.V06|——|Java.v06|ifelseifelse.v02|个人所得税计算方式一|
  10. oracle实现explode,炸裂函数explode