在生活中很多很多地方都涉及到了全文检索,最常见的就好比日常使用到的百度搜索等搜索引擎,也都是基于全文检索来实现的;全文检索种类较多,就好比Elasticsearch、Sorl等。

为Ealsticsearch配置词库,可以很好的解决生活中的关键字检索的匹配度,为Elasticsearch配置远程词库的话,我们就可以实现动态的添加搜索关键字进行匹配了,就好比使用百度搜索关键字"器词分"这个关键字,我们直接在百度上搜索,基本上是搜索不到任何结果的;

我们先安装好elasticsearch,然后安装IK分词器,我们的es版本和ik的版本可以通过ik分词器的git地址上看到medcl/elasticsearch-analysis-ik​github.com

我们把es和ik分词器安装完毕后,即可开始配置词库,在es中默认有提供一些词库,过滤一些语气词等;在安装的es的根路径下有一个\plugins\ik\config路径,下面有一个IKAnalyzer.cfg.xml配置xml,打开后可以看到

在这里,我们就可以为IK分词器配置远程词库了,首先,在服务器上某个地方创建一个.dic结尾的文件,然后通过nginx获取到当前文件的访问url;以我这边的测试代码为例;

我在服务器的根路径下的/date路径下建立了一个my_origin_ik.dic文件,然后配置nginx,在nginx配置一个service块,如下:

server

{

listen 80;

server_name **.**.**.230;

location /dic/ {

alias /data/;

}

}

然后我们通过这个地址看一下能否访问到当前文件,地址如下:

接下来,我们修改IK分词器的IKAnalyzer.cfg.xml配置,修改后的配置如下所示:

IK Analyzer 扩展配置

my_ik.dic

http://**.**.**.230/dic/my_origin_ik.dic

我们将远程词库的地址配置到key为remote_ext_dict的标签中,然后启动es,观察es的启动日志信息

[2019-12-07T13:46:24,903][INFO ][o.e.n.Node ] [es-node] initializing ...

[2019-12-07T13:46:24,955][INFO ][o.e.e.NodeEnvironment ] [es-node] using [1] data paths, mounts [[/ (rootfs)]], net usable_space [72.6gb], net total_space [98.3gb], types [rootfs]

[2019-12-07T13:46:24,955][INFO ][o.e.e.NodeEnvironment ] [es-node] heap size [494.9mb], compressed ordinary object pointers [true]

[2019-12-07T13:46:26,898][INFO ][o.e.p.PluginsService ] [es-node] loaded plugin [analysis-ik]

[2019-12-07T13:46:35,384][INFO ][o.e.n.Node ] [es-node] started

[2019-12-07T13:46:35,434][INFO ][o.w.a.d.Monitor ] try load config from /data/elasticsearch-6.3.0/config/analysis-ik/IKAnalyzer.cfg.xml

[2019-12-07T13:46:35,435][INFO ][o.w.a.d.Monitor ] try load config from /data/elasticsearch-6.3.0/plugins/ik/config/IKAnalyzer.cfg.xml

[2019-12-07T13:46:35,634][INFO ][o.w.a.d.Monitor ] [Dict Loading] /data/elasticsearch-6.3.0/plugins/ik/config/my_ik.dic

[2019-12-07T13:46:35,634][INFO ][o.w.a.d.Monitor ] [Dict Loading] http://**.**.**.230/dic/my_origin_ik.dic

[2019-12-07T13:46:36,128][WARN ][o.e.x.s.a.s.m.NativeRoleMappingStore] [es-node] Failed to clear cache for realms [[]]

[2019-12-07T13:46:36,143][INFO ][o.e.l.LicenseService ] [es-node] license [e8f**710-aa**-4951-860a-779****8a] mode [basic] - valid

[2019-12-07T13:46:36,210][INFO ][o.e.g.GatewayService ] [es-node] recovered [2] indices into cluster_state

[2019-12-07T13:46:36,588][INFO ][o.e.c.r.a.AllocationService] [es-node] Cluster health status changed from [RED] to [YELLOW] (reason: [shards started [[kstore][0]] ...]).

通过启动日志,可以看到es在启动的时候有加载两个分词器的配置信息,一个是es默认的分词器,另外一个就是我们安装的IK分词器,然后还加载了本次的词库my_ik.dic以及远程词库my_origin_ik.dic;因为此时远程词库中还没有任何内容,所以加载不到任何信息;

安装好ES和ik分词器之后,我们通过head插件可以查看和访问es的数据信息,这里我们可以测试指定IK分词器对关键字进行分词处理,查看分词结果;打开head插件,然后我们在复合查询页面进行分词查看,输入关键字进行粗粒度分析查看关键字“安装器词分”查看结果

_analyze POST请求

{

"analyzer": "ik_smart",

"text": "安装器词分"

}

输出如下:

{

"tokens": [{

"token": "安装",

"start_offset": 0,

"end_offset": 2,

"type": "CN_WORD",

"position": 0

},

{

"token": "器",

"start_offset": 2,

"end_offset": 3,

"type": "CN_CHAR",

"position": 1

},

{

"token": "词",

"start_offset": 3,

"end_offset": 4,

"type": "CN_CHAR",

"position": 2

},

{

"token": "分",

"start_offset": 4,

"end_offset": 5,

"type": "CN_CHAR",

"position": 3

}

]

}

可以看到,我们输入的内容"安装器词分"被ik分词器分词成为了 "安装"、"器"、"词"、"分" 四个关键字了;这时候,我们尝试着在远程词库中配置关键字 "器词分"之后再看看效果呢;

找到我们的远程词库文件,vim打开后进行编辑,添加 "器词分"关键字后进行保存,这时候再查看elasticsearch的日志,会发现,此时添加的关键字已经被es所加载了,日志信息如下:

[2019-12-07T14:01:45,758][INFO ][o.w.a.d.Monitor ] 重新加载词典...

[2019-12-07T14:01:45,838][INFO ][o.w.a.d.Monitor ] 器词分

[2019-12-07T14:01:45,838][INFO ][o.w.a.d.Monitor ] 重新加载词典完毕...

我们再回到head插件后,再次提交请求查看一下效果,可以看到,此时ik分词器已经成功生效了,关键字"安装器词分"已经被分析为两个关键字了,分别是"安装"、"器词分";如下图所示:

只要当远程词库的数据发生变动后,es即重新加载远程词库中所有的关键字,从而达到动态修改关键词的搜索功能。在实际应用中,我们还可以配置远程停用词,有效过滤掉一些政治敏感的关键词等;

es ik 词库添加词语_Elasticsearch配置IK分词器的远程词库相关推荐

  1. requirednew基于xml配置日志不回滚_Elasticsearch配置IK分词器的远程词库

    在生活中很多很多地方都涉及到了全文检索,最常见的就好比日常使用到的百度搜索等搜索引擎,也都是基于全文检索来实现的:全文检索种类较多,就好比Elasticsearch.Sorl等. 为Ealsticse ...

  2. ik分词器的热词更新_ik与拼音分词器,拓展热词/停止词库

    说明:本篇文章讲述elasticsearch分词器插件的安装,热词库停止词库的拓展,文章后面提到elasticsearch ,都是以es简称. 以下分词器的安装以ik分词器和pinyin分词器为例说明 ...

  3. Lucene分词器,使用中文分词器,扩展词库,停用词

    2019独角兽企业重金招聘Python工程师标准>>> Lucene分词器,使用中文分词器,扩展词库,停用词 博客分类: 搜索引擎,爬虫 停止词:lucene的停止词是无功能意义的词 ...

  4. 1、solr包结构介绍,solrCore的安装配置,solr部署到Tomcat,多solrCore配置,配置中文分词器,界面功能介绍,Schema.xml的基本使用,数据导入

    一.下载solr,下载地址是:http://archive.apache.org/dist/lucene/solr/,选择自己想要的solr的版本,本项目使用的版本是4.10.3 二.如果想下载Luc ...

  5. solr配置中文分词器

    solr配置中文分词器 配置IK分词器 可配置停用词.扩展词.同义词

  6. es ik 词库添加词语_ElasticSearch-IK拓展自定义词库(1):手动添加热词文件方式...

    IK分词器作为一个开源软件,分词功能非常强大,一般场合的分词需求,他都可以完胜.但是对于专业术语和行业用词,ik有点不太智能,不过IK已经很棒了!下面我就介绍下如何手动添加热词文件的形式来拓展ik认知 ...

  7. 白话Elasticsearch29-IK中文分词之IK分词器配置文件+自定义词库

    文章目录 概述 ik配置文件 IK自定义词库 自定义词库 Step1 : 新建自定义分词库 Step2 : 添加到ik的配置文件中 Step3 :重启es ,查看分词 自定义停用词库 Step1 : ...

  8. ES IK分词器 - 停用词

    安装IK中文分词器 参考github (https://github.com/medcl/elasticsearch-analysis-ik/tree/v7.6.1) 1.download or co ...

  9. 5工程添加emwin库_手把手教你打造专属自己的远程私有库——上

    打造自己的远程私有库 我们想使用组件化的话,我们一般推荐采用pod库的形式来集成我们的组件到我们的宿主工程,那么我们首先要知道如何打造自己的专属私有远程库,我们先来看看远程私有库的一个图解 我们可以看 ...

最新文章

  1. kali2020进入单模式_蚂蚁集团技术专家山丘:性能优化的常见模式及趋势
  2. python 回溯法 子集树模板 系列 —— 5、取物搭配问题
  3. 自学ng2 -生命周期钩子
  4. 前端学习(3197):jsx语法规则1
  5. 介绍计算机硬件的情景剧表演,手忙脚乱的情景剧
  6. [转] ASP.NET使用AJAX联动
  7. Java POI Word 写文档
  8. typora中文版官方免费快速下载以及Markdown的一些常用语法、Java知识点
  9. 一张图概括淘宝直播背后的前端技术 | 赠送多媒体前端手册
  10. 基于flask实现疫情可视化监控系统
  11. C语言基础编程题1.0
  12. MacBook 更新Big Sur后,虚拟机无法运行时显示该主机 CPU 类型不支持虚拟化性能计数器,模块“VPMC”启动失败,未能启动虚拟机
  13. Aocoda-RCF7/F7 MINI飞控无法解锁的疑难杂症-使用 Betaflight 10.8.0调参软件地面站刷写固件以及AOCODAF722MINI 配置文件
  14. AI 作图绘画的软件和网址
  15. Java基础强化训练——开发工具及输出语句训练
  16. 老年计算机班教案,山东老年大学课程好潮!摄影电脑智能手机班人气爆棚
  17. 动态模态分解 DMD | 做高维时间序列数据短时预测
  18. Android studio+SQLCipher加密SQLite数据库的几个坑
  19. imx8qxp平台,android11系统,U盘和sdcard自动挂载配置
  20. java9 opens与exports的区别 1

热门文章

  1. 李忠 X86汇编语言 从实模式到保护模式-初学
  2. 2021-03-14 vs2015使用inet_addr提示错误
  3. Windows tesseract-OCR 的安装和简单测试
  4. Android 性能优化 之 插桩日志分析
  5. Python Tutorial中英双语对照文档2
  6. XMC4300之memory map
  7. 数据科学项目的完整流程介绍
  8. 软件工程导论05-结构化分析与设计
  9. 402计算机毕业设计
  10. 新玺配资:创业板指强势反弹白马消费强势反攻!