安装elasticsearch及中文IK和近义词配置

安装java环境

java环境是elasticsearch安装必须的

yum install java-1.8.0-openjdk

安装elasticsearch

其实es的安装非常简单了

https://www.elastic.co/downloads/elasticsearch

cd /tmp

wget https://download.elastic.co/elasticsearch/elasticsearch/elasticsearch-1.7.1.tar.gz

tar -xf elasticsearch-1.7.1.tar.gz

mv /tmp/elasticsearch-1.7.1 /usr/local/

ln -s /usr/local/elasticsearch-1.7.1 /usr/local/elasticsearch

安装head插件

head插件让我们能更简单管理elasticsearch

cd /usr/local/elasticsearch

./bin/plugin --install mobz/elasticsearch-head

安装IK插件

去rtf项目中获取对应插件,建议别去自己找plugin下,medcl大已经为我们准备好了一切

cd /tmp

wget https://github.com/medcl/elasticsearch-rtf/archive/master.zip

unzip elasticsearch-rtf-master.zip

cd elasticsearch-rtf-master

cp -rf config/ik /usr/local/elasticsearch/config/

cp -rf plugins/analysis-ik /usr/local/elasticsearch/plugins/

vim /usr/local/elasticsearch/config/elasticsearch.yml

增加:

index:

analysis:

analyzer:

ik:

alias: [ik_analyzer]

type: org.elasticsearch.index.analysis.IkAnalyzerProvider

ik_max_word:

type: ik

use_smart: false

ik_smart:

type: ik

use_smart: true

配置近义词

近义词组件已经是elasticsearch自带的了,所以不需要额外安装插件,但是想要让近义词和IK一起使用,就需要配置自己的分析器了。

首先创建近义词文档

在config目录下

mkdir analysis

vim analysis/synonym.txt

编辑:

i-pod, i pod, i pad => ipod,

sea biscuit, sea biscit => seabiscuit,

中文,汉语,汉字

这里可以看到近义词的写法有两种:

a,b => c

a,b,c

第一种在分词的时候,a,b都会解析成为c,然后把c存入索引中

第二种在分词的时候,有a的地方,都会解析成a,b,c,把a,b,c存入索引中

第一种方法相比之下有个主词,比较省索引。

配置elasticsearch.yml中的自定义索引,和前面的ik结合,可以这么设置:

index:

analysis:

analyzer:

ik:

alias: [ik_analyzer]

type: org.elasticsearch.index.analysis.IkAnalyzerProvider

ik_max_word:

type: ik

use_smart: false

ik_smart:

type: ik

use_smart: true

my_synonyms:

tokenizer: standard

ik_syno:

type: custom

tokenizer: ik

filter: [my_synonym_filter]

ik_syno_smart:

type: custom

tokenizer: ik

filter: [my_synonym_filter]

use_smart: true

filter:

my_synonym_filter:

type: synonym

synonyms_path: analysis/synonym.txt

上面的配置文件创建了一个filter: my_synonym_filter, 然后创建了两个自定义analyzer: ik_syno和ik_syno_smart

启动elasticsearch:

bin/elasticsearch

案例测试

按照上面的配置,我们使用一个具体的句子进行测试:

120.55.72.158:9700/elasticsearchtest2

{

"index" : {

"analysis" : {

"analyzer" : {

"ik_syno" : {

"tokenizer" : "ik",

"filter" : ["my_synonym_filter"]

}

}

}

}

}

curl -XPOST "192.168.33.10:9200/elasticsearchtest/_analyze?analyzer=ik_syno" -d 'we are eng man i pad 汉语文字'

返回json结构:

{

"tokens": [

{

"token": "we",

"start_offset": 0,

"end_offset": 2,

"type": "ENGLISH",

"position": 1

},

{

"token": "eng",

"start_offset": 7,

"end_offset": 10,

"type": "ENGLISH",

"position": 2

},

{

"token": "man",

"start_offset": 11,

"end_offset": 14,

"type": "ENGLISH",

"position": 3

},

{

"token": "ipod",

"start_offset": 15,

"end_offset": 20,

"type": "SYNONYM",

"position": 4

},

{

"token": "中文",

"start_offset": 21,

"end_offset": 23,

"type": "SYNONYM",

"position": 5

},

{

"token": "汉语",

"start_offset": 21,

"end_offset": 23,

"type": "SYNONYM",

"position": 5

},

{

"token": "汉字",

"start_offset": 21,

"end_offset": 23,

"type": "SYNONYM",

"position": 5

},

{

"token": "文字",

"start_offset": 23,

"end_offset": 25,

"type": "CN_WORD",

"position": 6

}

]

}

这里就可以看到我们之前配置的东西都成功了:

are字被过滤,是由于are字是stop_words

i pad这个词语被转化为了ipod是由于近义词字典中我们设置了 i pad=>ipod

“文字”两个中文字是被分成一个中文词切割,是因为ik的默认main.dic里面有文字两个字

“中文”“汉字”“汉语”三个词出现是由于近义词字典中我们设置了这三个为同等级的近义词

JAVA ik es_安装elasticsearch及中文IK和近义词配置相关推荐

  1. 安装elasticsearch及中文IK和近义词配置

    安装elasticsearch及中文IK和近义词配置 安装java环境 java环境是elasticsearch安装必须的 yum install java-1.8.0-openjdk 安装elast ...

  2. 安装使用中文近义词工具包:Synonyms

    Synonyms: 中文近义词工具包 前言 安装 使用 synonyms#nearby(word [, size = 10]) synonyms#compare(sen1, sen2 [, seg=T ...

  3. 【Elasticsearch】相关性,近义词匹配,纠错匹配

    目录 相关性 布尔模型 词频/逆向文档频率(TF/IDF) 词频 逆向文档频率 字段长度归一值 结合使用 向量空间模型 Lucene 的实用评分函数 近义词匹配 近义词查询原理 同义词过滤器 纠错匹配 ...

  4. Synonyms:一个开源的中文近义词工具包

    作者:Synonyms 项目的作者胡小夕是北京邮电大学研究生,目前实习于今日头条 AI LAB.从事自然语言处理方向研究,在智能客服,知识图谱等领域都有相关研究开发经验. 工具包技术说明:该中文近义词 ...

  5. Python synonyms查找中文任意词汇的同义词近义词

    Python synonyms查找中文任意词汇的同义词近义词 作者:虚坏叔叔 博客:https://xuhss.com 早餐店不会开到晚上,想吃的人早就来了!

  6. Synonyms最好的中文近义词工具包

    1.中文分词 import synonyms synonyms.seg("中文近义词工具包") 分词结果,由两个list组成的元组,分别是单词和对应的词性. (['中文', '近义 ...

  7. window10下安装Elasticsearch(es)和IK分词器

    1 安装Elasticsearch 7.x  1.1 下载地址 https://www.elastic.co/cn/downloads/elasticsearch 1.2 下载后解压的目录结构 Ela ...

  8. ElasticSearch7.x IK 动态同义词/近义词动态加载同义词/近义词 dynamic_synonym

    一.下载elasticsearch-analysis-dynamic-synonym 同义词插件 本人当前执行安装的是7.6.2.7.x安装方式都是一样的 github官方下载地址 如果官方地址无法打 ...

  9. 腾讯文智java近义词API_常用的分词组件或API,该怎么选型?

    做互联网系统 分词是必不可少的.除非咱不需要搜索.标签或者关键字分析等. 在网上看到的一个列表,不错,放出来给大家. 这里简单点评下:(我简单体验了几个,没有全部用,像搜狗之类的,看下名称我就不想用, ...

最新文章

  1. linux下jsp环境的搭建
  2. 论文速递:智能作为信息处理系统
  3. mysql maxtmptables_mysql的tmp_table_size和max_heap_table_size
  4. IntelliTrace 调试、定位异常
  5. keil如何添加h文件_如何给PDF文件添加水印?分享给PDF批量加水印的方法
  6. 一款简洁大气的商城官网介绍源码
  7. 今天的C位,必须是这位浙大卜教授!
  8. unity安装后 启动失败_Unity3D插件安装常见问题说明
  9. Springboot集成Activiti7
  10. Text to Image 文本生成图像定量评价指标分析笔记 Metric Value总结 IS、FID、R-prec等
  11. esp8266 wifi库文件
  12. 声卡驱动win7安装失败解决方法
  13. 推荐:三少的新书 - 阴阳冕
  14. 大学生的秘密,全都藏在快递里
  15. 对那些家庭经济特别艰难的学生
  16. python sklearn库silhouette_score轮廓系数接口调用
  17. GO语言获取文件的大小
  18. 这事妥了,百度云三步走战略全面支持IPv6
  19. 看雪论坛 android,[分享] KSMA -- Android 通用 Root 技术
  20. STM32 电池电压采集之低功耗设计

热门文章

  1. 理财U21 融资租赁 习题解读
  2. 程序员html 5制作相册,前端程序员给女朋友做的相册——原生JS
  3. 快来直播:物联网如何推动农业发展
  4. HTML5+下用js获取设备的唯一识别码和本地数据库的操作
  5. 【Unity】Unity插件:地形编辑器MTE(Mesh Terrain Editor)
  6. 眼睑下垂不仅影响容貌,还会影响孩子视力发育
  7. 戴尔r720服务器装系统
  8. 信息架构、产品架构和业务架构
  9. 一款比较好用的审计系统软件
  10. java计算机毕业设计家教平台系统MyBatis+系统+LW文档+源码+调试部署