elk学习笔记-es-文档及索引操作
发表于:2025-01-23 作者:千家信息网编辑
千家信息网最后更新 2025年01月23日,常见术语文档 Document用户存储在es中的数据文档,相当于mysql数据表中的一行数据索引 index由具有相同字段的文档列表组成,相当于mysql数据库中的表,table节点 Node一个el
千家信息网最后更新 2025年01月23日elk学习笔记-es-文档及索引操作
常见术语
文档 Document
- 用户存储在es中的数据文档,相当于mysql数据表中的一行数据
索引 index
- 由具有相同字段的文档列表组成,相当于mysql数据库中的表,table
节点 Node
- 一个elasticsearch 的运行实例,是集群的构成单元。
集群 Cluster
- 由一个或多个节点组成,对外提供服务
Document
Json Object,有字段(field)组成,常见数据类型如下:
- 字符串:text,keyword
- 数值型:long,integer,short,byte,double,float,scaled_float
- 布尔:Boolean
- 日期:date
- 二进制:binary
- 范围类型:integer_range,float_range,long_range,double_range,date_range
每个文档都有一个唯一的ID标识
- 自行指定
- es 自动生成
元数据(MetaData),用于标注文档相关信息
- _index:文档所在索引名
- _type:文档所在的类型名
- _id:文档唯一id
- _uid:组合id,由_type和_id组成(6.x _type不再起作用,同_id一样)
- _source:文档的原始Json数据,可以从这里获取每个字段的内容
- _all:整合所有字段内容到该字段,默认禁用
正排索引
- 文档ID到文档内容,单词的关联关系
倒排索引
- 单词到文档ID的关联关系
倒排索引-查询流程
- 通过倒排索引获得"搜索引擎"对应的文档Id有1和3
- 通过正排索引查询1和3的完整内容
- 返回用户最终结果
倒排索引-单词词典
单词词典(Term Dictionary)是倒排索引的重要组成
- 记录所有文档的单词,一般都比较大
- 记录单词倒排列表的关联信息
倒排索引-倒排列表
倒排列表( Posting List )记录了单词对应的文档集合,由倒排索引项( Posting )组成
倒排索引项( Posting )主要包含如下信息:
- 文档Id ,用于获取原始信息
- 单词频率( TF, Term Frequency) , 记录该单词在该文档中的出现次数,用于后续相关性算分
- 位置( Position) ,记录单词在文档中的分词位置(多个) , 用于做词语搜索
- 偏移(Offset),记录单词在文档的开始和结束位置,用于做高亮显示
Index
索引中存储具有相同结构的文档(Document)
- 每个索引都有自己的mapping 定义,用于定义字段名和类型
一个集群可以有多个索引,比如:
- nginx 日志存储的时候可以按照日期每天生成一个索引来存储
nginx-log-2019-01-01
nginx-log-2019-01-02
nginx-log-2019-01-03
创建索引与写入数据
Rest API ()
Elasticsearch 集群对外提供RESTful API
- REST(REpresentational State Transfer)表现层状态转移(对资源进行操作状态会发生变化)
- URL指定资源,如Index,Document
- Http Method 指定资源操作类型,如GET,POST,PUT,DELETE
两种交互方式
- Curl 命令行
- Kibana DevTools
索引 API
es有专门的Index API,用于创建,更新,删除索引配置等
- 创建索引API
PUT /test_index
- 查看现有索引
GET_cat/indices
文档 Document API
es有专门的 Document API
- 创建文档
- 查询文档
- 更新文档
- 删除文档
创建文档:
指定文档ID创建文档:
PUT /test_index/doc/1{ "username":"kibana", "version":6.1}
不指定ID创建文档:
POST /test1_index/doc{ "username":"kibana", "version":6.1}
查询文档
- 指定要查询文档的ID
GET /test_index/doc/1
- 搜索所有文档:_search
GET /test_index/doc/_search //不指定条件查找
GET /test_index/doc/_search{"query": {"term":{ "_id":"1" //指定条件,查找ID为1的文档}}}
批量创建文档API
es允许一次操作多个文档(增删改查,create创建文档,如果文档已经存在就会报错。index创建文档,如果存在就会覆盖。)
- endpoint 为 _bulk,如下:
POST _bulk{"index":{"_index":"test_index","_type":"doc","_id":"3"}}{"username":"zabbix","version":4}{"delete":{"_index":"test_index","_type":"doc","_id":"1"}}{"update":{"_id":"4","_index":"test_index","_type":"doc"}}{"doc":{"es":"5.0"}}
输出:
{"took": 979, //查询耗时,单位ms"errors": false, //返回结果,正确或错误"items": [ //每个操作返回的结果{ "index": { "_index": "test_index", "_type": "doc", "_id": "3", "_version": 1, "result": "created", //创建 "_shards": { "total": 2, "successful": 2, "failed": 0 }, "_seq_no": 0, "_primary_term": 1, "status": 201 }},{ "delete": { "_index": "test_index", "_type": "doc", "_id": "1", "_version": 2, "result": "deleted", //删除 "_shards": { "total": 2, "successful": 2, "failed": 0 }, "_seq_no": 1, "_primary_term": 1, "status": 200 }},{ "update": { "_index": "test_index", "_type": "doc", "_id": "4", "_version": 2, "result": "updated", //更改 "_shards": { "total": 2, "successful": 2, "failed": 0 }, "_seq_no": 3, "_primary_term": 1, "status": 200 }}]}
批量查询文档
- endpoint 为_mget,如下:(并且可以在一个_mget下获取不同索引的文档)
GET /_mget //查找在test_index索引,id为4和1的文档.{ "docs":[ //指明要查询的文档id { "_index":"test_index", "_type":"doc", "_id":"4" }, { "_index":"test_index", "_type":"doc", "_id":"2" } ]}返回{ "docs": [ { "_index": "test_index", "_type": "doc", "_id": "4", "_version": 2, "found": true, "_source": { "username": "es", "version": 6.1, "es": "5.0" } }, { "_index": "test_index", "_type": "doc", "_id": "2", "_version": 1, "found": true, "_source": { "username": "zabbix", "version": 4.2 } } ]}
欢迎加入
文档
索引
单词
数据
查询
字段
类型
信息
内容
多个
集群
存储
位置
结果
资源
关联
搜索
原始
相同
常见
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
数据库论述题目
如何查看用友软件的数据库
单片机软件开发成本
数据库备份一个月数据
云服务器首单
抓取 朋友圈 更新数据库
数据库错误怎么检查
奥奇传说服务器调用第三方
科技互联网公司 利润 营收
计算机网络技术发展学什么的
6501服务器死机
乌鲁木齐虚拟化服务器
我的世界强烈推荐服务器
网络安全宣传培训制度
谷歌打开网页提示服务器错误
性能测试服务器配置
检查多个数据库连接
亚信安全邮箱服务器怎么填
深圳数字软件开发报价表
服务器配置与管理科思
用友后台数据库怎么登录
网易我的世界租赁服重置服务器
软件开发入门必读书籍
软件开发7年跳槽继续写代码
县级以上政府网络安全保护
河马读书软件开发
网络维护软件开发
高中网络安全手抄报
以下哪些为关系型数据库
哪些数据库有xrd数据