首页 > 编程知识 正文

elasticsearch组件,grafana使用教程

时间:2023-05-03 09:55:48 阅读:150058 作者:1825

ElaticSearch的基本概念Elasticsearch是基于Lucene的搜索服务器。 提供基于rest风格的web界面的分布式多用户功能全文搜索引擎。 我个人理解是基于rest风格的索引数据库。

接近实时(NRT Near Real Time )

Elasticsearch是一个接近实时的搜索平台。 即从索引一个文档直到这个文档能够被搜索到有一个轻微的延迟(通常是1秒内)

索引(index)

一个索引就是一个拥有几分相似特征的文档的集合例如,可以有顾客数据的索引、其他产品目录的索引、订购数据的索引。 索引由名称标识,且必须全部小写。 此外,在索引、搜索、更新和删除此索引中的文档时,也使用此名称。 索引类似于关系数据库中的数据库概念。 在一个集群中,如果你想的话,可以定义任意数量的索引。

类型(type)

在一个索引中,你可以定义一种或多种类型一种类型是你的索引的逻辑分类/划分,其含义完全由你决定。 通常定义具有一组公共字段的文档类型。 例如,假设您运营一个博客平台,并将所有数据存储在索引中。 通过该索引,可以为用户数据定义其他类型,也可以为博客数据定义其他类型。 当然,也可以为注释数据定义其他类型。类型类似于关系型数据库中Table的概念

NOTE: 在5.x版本以前可以在一个索引中定义多个类型,6.x之后版本也可以使用,但是不推荐,在7~8.x版本中彻底移除一个索引中创建多个类型

映射(Mapping)

映射是ES的重要内容之一,在它类似于传统关系型数据中table的schema,用于定义一个索引(index)中的类型(type)的数据的结构ES中,可以手动创建类型(相当于表)和映射(关联和模式),也可以采用缺省创建方法。 在缺省配置中,ES可以根据插入的数据自动创建类型及其映射。 映射主要包括字段名称、字段数据类型和字段索引类型

文档(document)

一个文档是一个可被索引的基础信息单元,类似于表中的一条记录例如,可以有某个员工的文档,也可以有某个商品的文档。 文档以轻量级数据交换格式JSON(JavaScriptobjectnotation )表示。

电子搜索概念关系图

Kibana基本操作Kibana是Elasticsearch的开源分析和可视化平台,使用Kibana可以查询、查看并与存储在ES索引的数据进行交互操作,使用Kibana可以执行高级数据分析,以图表、表格、地图的形式表示数据。

(首先启动了ES服务,启动了Kibana )

索引基本操作创建索引时,把类型和映射一并创建

#创建索引PUT /wyc#是否显示所有索引GET /_cat/indices? v#删除索引DELETE /wyc#删除所有索引仔细使用:ElasticSearch会附带两个索引。 删除kibana客户端将无法使用,只能重新启动]DELETE /*类型(type )基本操作创建类型

:要使用这种方法创建类型,请注意索引不存在

#型操作驻留在一个索引中的型式put/EMS(mappings ) : (EMP ) : ) properties : ) id ) : ) type ) 3360 ) integer

mappimgs:对映射、固定格式或类型的数据结构施加限制,从而在添加文档时产生限制

emp :对于类型名称,建议在ES6之后创建索引以创建类型

properties:将pddhh添加到属性、固定格式或类型创建的属性中

“id”“name”…等等:属性名称

“type”:根据固定写法、制约类型、属性可以写不同的类型

mapping type :http://www.Sina.com /

text , keyword , date ,integer, long , double , boolean or ip

#语法GET /索引名称/_m

apping# 比如GET /ems/_mapping 文档(document)基本操作

添加文档

如果不指定id,ES默认会生成一个随机id,后面操作文档都根据此id
这也是为什么在给类型添加属性时,一般不添加id属性

# 语法 PUT /索引/类型/idPUT /ems/emp/1{ "eid":2021326, "name":"测试ES"}#不指定IDPOST /ems/emp

获取文档

# 语法 GET /索引/类型/idGET /ems/emp/1结果:{ "_index" : "ems", "_type" : "emp", "_id" : "1", "_version" : 1, "_seq_no" : 0, "_primary_term" : 1, "found" : true, "_source" : { "eid" : 2021326, "name" : "测试ES" }}

删除文档

# 语法 DELETE /索引/类型/idDELETE /ems/emp/1结果:{ "_index" : "ems", "_type" : "emp", "_id" : "1", "_version" : 2, "result" : "deleted", "_shards" : { "total" : 2, "successful" : 1, "failed" : 0 }, "_seq_no" : 1, "_primary_term" : 1}

更新文档

不保留原始数据(先删除后插入) POST /ems/emp/1{ "name":"kkdgtx"} 保留原始数据更新,且可添加新字段
这种方式,type并没有新增的属性,但你添加的时候,ES会给你进行相应的匹配 POST /索引/类型/id/_update { "doc":{ "属性名":"值" } }POST /ems/emp/1/_update{ "doc":{ "eid":555555, "name":"tetetetest" }}结果:{ "_index" : "ems", "_type" : "emp", "_id" : "1", "_version" : 2, "_seq_no" : 5, "_primary_term" : 1, "found" : true, "_source" : { "eid" : 555555, "name" : "tetetetest" }} 根据script脚本进行更新[使用较少] POST /ems/emp/1/_update{ "script": "ctx._source.eid += 8888"} 批量操作

有时候,想要同时添加文档、删除文档、修改文档、索引文档组合进行
使用关键词 _bulk

# 同时索引两个文档PUT /ems/emp/_bulk{"index":{"_id": "2"}} { "eid":"12456", "name":"nametetete"}{"index":{"_id": "3"}} { "eid":"12456", "name":"name33"} # 同时修改和删除文档PUT /ems/emp/_bulk{"update":{"_id":"3"}}{"doc":{"name":"修改后name"}}{"delete":{"_id":"2"}}

操作非原子性的,且弱化了事务

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。