es 使用ik停词_Elasticsearch教程,Elasticsearch 设置近义词搜索,IK分词器实现同义词搜索...

本文介绍了如何使用Elasticsearch的IK分词器进行近义词匹配搜索,特别是在版本2.0.2中的配置方法。通过修改配置文件、添加同义词库和Java API创建Mapping,实现了如将'ES'与'elasticsearch','脚本'与'JS'、'javascript'视为同义词的搜索功能。
摘要由CSDN通过智能技术生成

要实现Elasticsearch 近义词匹配搜索,我们要有分词器,本篇博客使用的是IK分词器,其次  Elasticsearch  的版本是2.x,Elasticsearch具体版本是2.0.2。

如果没有安装Elasticsearch和IK分词器,请参考下面的入门教程。

安装完毕后,我们就开始了。再次申明一下,这个实现过程很简单,我也帮你踩过雷了,所以坚持照做下去,一定会成功。

先说下需求和具体业务,我在做本站的站内搜索的时候,发现我写的教程都是  Elasticsearch  关键词,而不是ES,而我们有的时候习惯去用ES搜索,所以我希望他们能关联起来,如下需求。

搜索JS教程,结果能出来  Javascript  教程和脚本教程。

开始了。

一、Elasticsearch配置文件更改

首先在  Elasticsearch  的config目录下配置如下配置:$: vi elasticsearch/config/elasticsearch.yml

在最下面加上下面的配置:#在最下面加上下面的代码

index:

analysis:

analyzer:

ik_syno:

type: custom

tokenizer: ik_max_word

filter: [my_synonym_filter]

ik_syno_smart:

type: custom

tokenizer: ik_smart

filter: [my_synonym_filter]

filter:

my_synonym_filter:

type: synonym

synonyms_path: ik/config/synonym.txt

二、添加 IK 同义词库

上面配置了一行 ik/config/synonym.txt ,所以我们在elasticsearch.yml 同级目录下创建目录ik/config/,然后创建文件synonym.txt 。

然后编辑synonym.txt,输入我们的同义词。[elasticsearch@admin config]$ vi ik/config/synonym.txt

es,search,elasticsearch

脚本,js,javascript

用英文逗号间隔,一行为同义词。

三、Java API 创建Mapping

上一篇已经讲到了,所以还请看一遍。需要指定我们的 index分词器,和search分词器。详细请看:Elasticsearch Java API创建Mapping,指定分词器

下面是主要代码。.startObject("title")

.field("type","string")

.field("store", "yes")

//指定index analyzer 为 ik_syno

.field("analyzer", "ik")

//指定search_analyzer 为ik_syno

.field("searchAnalyzer", "ik_syno")

.endObject()

四、Elasticsearch插入数据测试

测试搜索一下ES教程,看看结果。

再测试下js教程关键词。

好了,收工,想要看看具体的效果,请在本站使用快捷键,Ctrl + F,搜索试试,功能今天晚上上线,2017年5月25日 14:55:17。

如果本文对你有帮助,那么请你赞助我,让我更有激情的写下去,帮助更多的人。

¥我需要走的更远,点击我 赞助。

如果还有疑问,点击我加群,为你提供最好的解答。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值