Es图形化软件使用之ElasticSearch-head、Kibana,Elasticsearch之-倒排索引操作、映射管理、文档增删改查
2022-05-25 19:39
609 查看
今日内容概要
- ElasticSearch之-ElasticSearch-head
- ElasticSearch之-安装Kibana
- Elasticsearch之-倒排索引
- Elasticsearch之-索引操作
- Elasticsearch之-映射管理
- Elasticsearch的文档增删查改(CURD)
内容详细
1、ElasticSearch之-ElasticSearch-head
# 本质都是 c s 架构的软件 # es:web服务端封装了一些restful接口 --b s架构 -docker # mysql,redis---》自定制的 tcp 协议 --b s架构 # 服务端装好了 # 装客户端 -浏览器--->只能发get请求 -postman -ElasticSearch-head 第三方用nodejs写的的客户端 -Kibana 官方提供的 # head的安装 # 地址:https://github.com/mobz/elasticsearch-head,可以用git下载,或者下载zip # 解压后切换到目录下 cd elasticsearch-head-master # 通过npm安装依赖 npm install # 启动 npm run start #在浏览器里打开 http://localhost:9100/ # 使用ElasticSearch-head连接服务端 -es是一个web后端 -ElasticSearch-head在跑在一个端口上,会有跨域问题 -解决跨域问题---》es的配置文件中加入允许跨域 # 跨域的配置---》es 的 config目录下的 elasticsearch.yml 添加下面两句: http.cors.enabled: true http.cors.allow-origin: "*"
2、ElasticSearch之-安装Kibana
# 可视化客户端---》在浏览器中访问 # 重点: -es版本需要跟Kibana完全一一对应 # 使用步骤 -官方下载,解压 https://www.elastic.co/cn/downloads/past-releases/kibana-7-5-0 -配置Kibana---》指定连接的es服务端是什么 E:\es\kibana-7.5.0-windows-x86_64\config\kibana.yml: server.port: 5601 server.host: "127.0.0.1" server.name: lqz elasticsearch.hosts: ["http://localhost:9200/"] -启动即可 cd到 安装路径的 bin路径 启动: ./kibana # 会在es中创建一些索引,我们不需要管,也不要删掉 # head 用来看es的数据 # kibana 增删查改数据
3、Elasticsearch之-倒排索引
# 面试es重点:倒排索引 keywords和text区别 keyword不分词,直接建索引 text要分词,再建索引 # 倒排索引:通过关键字建立索引查询文档,存的时候对关键字建立索引 文章id---》文章内容 ---》正向索引 关键词1 关键词2 ---》文章内容1,文章内容2---》倒排索引 关键词3 # 总结 - 反向索引又叫倒排索引,是根据文章内容中的关键字建立索引 - 搜索引擎原理就是建立反向索引 - Elasticsearch 在 Lucene 的基础上进行封装,实现了分布式搜索引擎 - Elasticsearch 中的索引、类型和文档的概念比较重要,类似于 MySQL 中的数据库、表和行 - Elasticsearch 也是 Master-slave 架构,也实现了数据的分片和备份 - Elasticsearch 一个典型应用就是 ELK 日志分析系统
4、Elasticsearch之-索引操作(增删改查)
# 索引对等 mysql的数据库 ### 新增索引 建立一个lqz索引,有5个分片,每个分片一个副本 PUT lqz { "settings": { "index":{ "number_of_shards":5, "number_of_replicas":1 } } } ### 查看索引 # 获取lqz2索引的配置信息 GET lqz/_settings # 获取所有索引的配置信息 GET _all/_settings # 同上 GET _settings # 获取lqz和lqz2索引的配置信息 GET lqz,lqz2/_settings ### 修改索引 (一般不改) PUT lqz/_settings { "number_of_replicas": 2 } ### 删除索引 DELETE lqz
5、Elasticsearch之-映射管理
# 等同于原来 mysql中建表语句 # es 6.x之前,一个索引下可以有多个类型 --->一个库下可以有多个表 # 6.x 可以使用多个类型,但不能创建了 # es 6.x以后,一个索引下只能有一个类型 --->一个库下只能有一个表 # 在es中,索引没有,类型没有,可以直接插入文档--》插入文档后,自动创建索引和类型 # mysql必须先建库,再建表,再插入数据 ##### 创建类型 # 6.x之前的建立类型 PUT books # 给books索引,建立一个类型book类型,无论索引是否存在 { "mappings": { "book":{ "properties":{ "title":{ "type":"text" }, "price":{ "type":"integer" }, "addr":{ "type":"keyword" }, "company":{ "properties":{ "name":{"type":"text"}, "company_addr":{"type":"text"}, "employee_count":{"type":"integer"} } }, "publish_date":{"type":"date","format":"yyy-MM-dd"} } } } } # 6.x以后的建立类型-->不能建多个类型了,不需要指定类型,默认叫 _doc PUT books { "mappings": { "properties":{ "title":{ "type":"text" }, "price":{ "type":"integer" }, "addr":{ "type":"keyword" }, "company":{ "properties":{ "name":{"type":"text"}, "company_addr":{"type":"text"}, "employee_count":{"type":"integer"} } }, "publish_date":{"type":"date","format":"yyy-MM-dd"} } } } # python 没有基础数据类型---》对象 ---》整形可以无限长 # 字段类型 字段数据类型 string类型:text,keyword 数字类型:byte(int8->一个字节),short(int16->2个字节),integer(int32->4个字节),long(int64-->8个字节),float(float32),double(float64) 日期类型:data 布尔类型:boolean binary类型:binary 复杂类型:object(实体,对象),nested(列表) geo类型:geo-point,geo-shape(地理位置) 专业类型:ip,competion(搜索建议) # 字段参数\映射参数---》字段有参数 属性 描述 适合类型 store 值为yes表示存储,no表示不存储,默认为yes all index yes表示分析,no表示不分析,默认为true text null_value 如果字段为空,可以设置一个默认值,比如"NA"(传过来为空,不能搜索,na可以搜索) all analyzer 可以设置索引和搜索时用的分析器,默认使用的是standard分析器,还可以使用whitespace,simple。都是英文分析器 all include_in_all 默认es为每个文档定义一个特殊域_all,它的作用是让每个字段都被搜索到,如果想让某个字段不被搜索到,可以设置为false all format 时间格式字符串模式 date ###### 查看映射 mapping 类型 # 查看books索引的mapping GET books/_mapping # 获取所有的mapping GET _all/_mapping #### 插入文档 # 测试数据1 PUT books/_doc/1 { "title":"大头儿子小偷爸爸", "price":100, "addr":"北京天安门", "company":{ "name":"我爱北京天安门", "company_addr":"我的家在东北松花江傻姑娘", "employee_count":10 }, "publish_date":"2019-08-19" } # 测试数据2 PUT books/_doc/2 { "title":"白雪公主和十个小矮人", "price":"99", "addr":"黑暗森里", "company":{ "name":"我的家乡在上海", "company_addr":"朋友一生一起走", "employee_count":10 }, "publish_date":"2018-05-19" }
6、Elasticsearch的文档增删查改(CURD)
### 文档增 PUT lqz/_doc/1 { "name":"顾老二", "age":30, "from": "gu", "desc": "皮肤黑、武器长、性格直", "tags": ["黑", "长", "直"] } ### 文档改 # 方式一:覆盖更新 PUT lqz/_doc/1 { "name":"lqz", "age":30, } # 方式二:真更新 POST lqz/_doc/1/_update { "doc": { "desc": "皮肤很黄,武器很长,性格很直", "tags": ["很黄","很长", "很直"] } } POST lqz/_update/1 { "doc": { "desc": "xx,yy,zz", "tags": ["很黄","很长", "很直"] } } ### 文档删 DELETE lqz/_doc/1 ### 文档查(最复杂) # 方式一:根据id GET lqz/_doc/1 # 方式二:根据查询字符串 GET lqz/_search?q=from:gu GET lqz/_search?q=age:29 # 方式三:结构化查询(常用,功能丰富) GET lqz/_search { "query": { "match": { "name": "gu" } } } #### 面试重点:term 和 match的区别 - term代表完全匹配,不进行分词器分析 term 查询的字段需要在mapping的时候定义好,否则可能词被分词。传入指定的字符串,查不到数据 -match match的查询词会被分词,会把要搜索的词分词---》搜索 存的时候,如果是text类型,会分词,建索引存储 # es是个存数据的地方 -mysql---》存到es -pymysql取出mysql数据---》存到es中 -查询数据
相关文章推荐
- 从零学Elasticsearch系列——使用kibana实现ES基本的操作
- 使用kibana操作elasticsearch(es)
- 使用python操作elasticsearch实现监控数据及kibana分析
- 使用java api操作es需要注意的地方(Elasticsearch开启shield插件之后)
- 【Mysql】使用图形化管理工具来管理和操作Mysql
- Linux操作系统安装ELK stack日志管理系统--(2)Elasticsearch与Kibana的安装与使用以及和Logstash的连接
- ElasticSearch的查询相关操作---使用es的api和结果遍历
- 使用head插件操作ElasticSearch
- 安装es客户端软件elasticsearch-head
- Qt软件开发文档2---QT构建dll库,并使用dllmanager管理dll库
- ElasticSearch安装,ES启动,检查ES是否成功,Kibana下载和安装,Kibana的使用
- 使用elasticsearch、elasticsearch-head、kibana 的安装
- Windows本地启动elasticsearch、kibana、es-head
- win下ElasticSearch与ES-head安装和使用
- 《题库管理系统》是一款操作使用简单,界面漂亮美观的教学管理应用软件。
- elasticsearch java和_head插件对索引文档的增删改查
- 10分钟学会使用github管理项目,图形化界面傻瓜式操作。
- head插件对elasticsearch 索引文档的增删改查
- 使用kibana操作elasticsearch
- Elasticsearch集群管理工具head插件 使用指南