经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 程序设计 » Elasticsearch » 查看文章
Elasticsearch6.x和7.x版本常用插件汇总
来源:cnblogs  作者:优比特  时间:2019/8/20 8:48:50  对本文有异议

elasticsearch插件汇总

基于es 7.3版本试用。

一、安全插件

1、x-pack

a、介绍

包括安全(x-pack-security),监视(x-pack-watcher),警报(x-pack-monitoring),报表(x-pack-graph),Elasticsearch SQL(x-pack-sql),跨集群复制(x-pack-ccr)、x-pack-upgrade、x-pack-rollup和机器学习(x-pack-ml)。7.x版本中,es的安全核心功能免费使用。

b、安装

es7.x版本以默认安装好x-pack。修改配置激活即可。

  1. #在elasticsearch.yml最后添加
  2. xpack.security.enabled: true
  3. xpack.security.audit.enabled: true
  4. #basic表示xpack使用基础版license,否则无法启动
  5. xpack.license.self_generated.type: basic
  6. xpack.security.transport.ssl.enabled: true

  

  1. 重启es 执行
  1. ./elasticsearch-setup-passwords interactive
  1. 会引导设置各种密码,包括elastickibanaapm_systemlogstash_systembeats_systemremote_monitoring_user
c、使用

默认用户名elastic,例如

  1. #curl请求
  2. curl -XGET -u "elastic:123456" http://192.0.0.1:9200/_cat/indices?v
  3. #http请求
  4. header添加
  5. key=Authorization value = Basic ZWxhc3RpYzoxMjM0NTY=

将username:secret进行base64加密得到 dXNlcm5hbWU6c2VjcmV0 然后前面加上一个Basic和空格, 构造一个字符串形如: Basic dXNlcm5hbWU6c2VjcmV0 然后添加到http的header中Authorization作为键,该字符串为值。
若没添加Authorization,restful请求时报错,返回如security_exception、401

d、结合kibana

es启用x-pack后,kibana会新增用户和角色管理菜单。kibana登录需要输入密码

e、es6.x版本使用x-pack

在es6.x中使用安全功能,需要在kibana中升级license。购买一个icense或申请一个30天的试用。 在 Kibana 中访问 Management -> Elasticsearch -> License Management。选择试用 然后在elasticsearch.yml添加如下配置

  1. xpack.security.enabled: true
  2. xpack.ml.enabled: true
  3. xpack.license.self_generated.type: trial

重启es
在es的bin下执行如下命令,设置密码

  1. elasticsearch-setup-passwords interactive

在kibana.yml中配置

  1. elasticsearch.username: "elastic"
  2. elasticsearch.password: "123456"

重启kibana,获得试用30天

二、分词插件

1、ik分词

a、介绍

最流行的分词插件

b、安装
  1. cd /bin
  2. ./elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.3.0/elasticsearch-analysis-ik-7.3.0.zip
c.使用
i.创建索引
  1. 1.create a index
  2. curl -XPUT http://localhost:9200/index
  3. 2.create a mapping
  4. curl -XPOST http://localhost:9200/index/_mapping -H 'Content-Type:application/json' -d'
  5. {
  6. "properties": {
  7. "content": {
  8. "type": "text",
  9. "analyzer": "ik_max_word",
  10. "search_analyzer": "ik_smart"
  11. }
  12. }
  13.  
  14. }'

  

  1. analyzer说明: ik_smart: 会做最粗粒度的拆分 ik_max_word: 会将文本做最细粒度的拆分。
ii.分词查询
  1. curl -XPOST http://localhost:9200/index/_search -H 'Content-Type:application/json' -d'
  2. {
  3. "query" : { "match" : { "content" : "中国" }},
  4. "highlight" : {
  5. "pre_tags" : ["<tag1>", "<tag2>"],
  6. "post_tags" : ["</tag1>", "</tag2>"],
  7. "fields" : {
  8. "content" : {}
  9. }
  10. }
  11. }

  

2、pinyin

a、介绍

pinyin插件能够将文档和查询条件在汉字和拼音间转换

b、安装
  1. ./elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-pinyin/releases/download/v7.3.0/elasticsearch-analysis-pinyin-7.3.0.zip

  

c.使用
i.创建索引
  1. PUT /medcl/
  2. {
  3. "settings" : {
  4. "analysis" : {
  5. "analyzer" : {
  6. "pinyin_analyzer" : {
  7. "tokenizer" : "my_pinyin"
  8. }
  9. },
  10. "tokenizer" : {
  11. "my_pinyin" : {
  12. "type" : "pinyin",
  13. "keep_separate_first_letter" : false,
  14. "keep_full_pinyin" : true,
  15. "keep_original" : true,
  16. "limit_first_letter_length" : 16,
  17. "lowercase" : true,
  18. "remove_duplicated_term" : true
  19. }
  20. }
  21. }
  22. }
  23. }

  

ii.查询
  1. GET /medcl/_analyze
  2. {
  3. "text": ["刘德华"],
  4. "analyzer": "pinyin_analyzer"
  5. }

  

3、smartcn

a、介绍

中科院分词器,和ik类似。不同点是smartcn无法自定义词库

b、安装
  1. ./elasticsearch-plugin install https://artifacts.elastic.co/downloads/elasticsearch-plugins/analysis-smartcn/analysis-smartcn-7.3.0.zip

  

c.使用

类似ik tokenizer为smartcn

4、icu

a、介绍

Elasticsearch的 ICU 分析器插件 使用 国际化组件 Unicode (ICU) 函数库(详情查看 site.project.org)提供丰富的处理 Unicode 工具。 这些包含对处理亚洲语言特别有用的 icu_分词器 ,还有大量对除英语外其他语言进行正确匹配和排序所必须的分词过滤器。

b、安装
  1. ./elasticsearch-plugin install analysis-icu

  

5、ik或smart与pinyin组合使用

es分析器实际上是三个功能的封装,字符过滤器->分词器->token过滤器,按顺序执行 创建自定义分析器,格式如下

  1. PUT localhost:9200/mytest
  2. {
  3. "setting": {
  4. "analysis": {
  5. "char_filter": { 自定义的字符过滤器 },
  6. "tokenizer": { 自定义的分词器 },
  7. "filter": { 自定义的token过滤器 },
  8. "analyzer": { 自定义的分析器,可以将上面的char_filtertokenizerfilter用不同的组合拼起来,形成不同的分析器 }
  9. }
  10. }
  11. }

  

例如ik和拼音组合

  1. http://localhost:9200/article_ik_pinyin
  2. {
  3. "settings": {
  4. "number_of_shards": "6",
  5. "number_of_replicas": "1",
  6. "index":{
  7. "analysis": {
  8. "analyzer": {
  9. "ik_pinyin_analyzer": {
  10. "type":"custom",
  11. "tokenizer": "ik_max_word",
  12. "filter": "pinyin_filter"
  13. }
  14. },
  15. "filter":{
  16. "pinyin_filter":{
  17. "type": "pinyin",
  18. "keep_first_letter": false
  19. }
  20. }
  21. }
  22. }
  23. },
  24. "mappings": {
  25. "article_ik_pinyin": {
  26. "properties": {
  27. "id": {
  28. "type": "text"
  29. },
  30. "title": {
  31. "analyzer": "ik_pinyin_analyzer",
  32. "type": "text"
  33. }
  34. }
  35. }
  36.  
  37. }
  38. }

  

三、文本解析插件

4、ingest attachment plugin

a、介绍

这个是基于Apache 文本扩展库Tika插件之上开发的一款适合elasticsearch文本解析插件。在ES5之前使用的是mapper-accachment。ElasticSearch只能处理文本,不能直接处理文档。
Ingest-Attachment是一个开箱即用的插件,替代了较早版本的Mapper-Attachment插件,使用它可以实现对(PDF,DOC,EXCEL等)主流格式文件的文本抽取及自动导入。Elasticsearch5.x新增一个新的特性IngestNode,此功能支持定义命名处理器管道pipeline,pipeline中可以定义多个处理器,在数据插入ElasticSearch之前进行预处理。 而Ingest Attachment Processor Plugin提供了关键的预处理器attachment,支持自动对入库文档的指定字段作为文档文件进行文本抽取。
由于ElasticSearch是基于JSON格式的文档数据库,所以附件文档在插入ElasticSearch之前必须进行Base64编码。

b、安装
  1. ./elasticsearch-plugin install ingest-attachment

  

四、SQL支持

1、x-pack-sql

es7.x版本的x-pack自带es sql

a、使用例如
  1. http://localhost:9200/_sql
  2. {
  3. "query": "SELECT * FROM article_ik_pinyin"
  4. }

  

详见

2、elasticsearch-sql

a、介绍

支持到es6.8
https://github.com/NLPchina/elasticsearch-sql/

b、安装
  1. ./elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/6.5.4.0/elasticsearch-sql-6.5.4.0.zip

  

c、使用
  1. curl -X GET "localhost:9200/_sql" -H 'Content-Type: application/json' -d'select * from article_smartcn_pinyin limit 10'

  

五、可视化

1、kibana

a、介绍

es官方提供的可视化套件,集成了es开发工具、报表、仪表盘、数据挖掘等功能https://www.elastic.co/guide/en/kibana/current/targz.html
kibana6.7+才支持汉化

b、安装
  1. kibana安装版本要和es对应
  1. wget https://artifacts.elastic.co/downloads/kibana/kibana-7.3.0-linux-x86_64.tar.gz
  2. tar -xzvf kibana-7.3.0-linux-x86_64.tar.gz
  3.  
  4. 修改config/kibana.yml
  5. i18n.locale: "zh-CN"
  6. server.port: 5601
  7. server.host: "内网ip"
  8. ibana.index: ".kibana"
  9. es有配置x-pack的话修改
  10. elasticsearch.username: "elastic"
  11. elasticsearch.password: "123456"

  

  1. 启动
  1. ./bin/kibana

  

  1.  

原文链接:http://www.cnblogs.com/yobit/p/11376453.html

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号