Elasticsearch 基础操作与 ES

编程入门 行业动态 更新时间:2024-10-23 19:27:40

Elasticsearch 安装请参考 搭建ELK日志管理平台 - - 2 ElasticSearch部署

01 创建索引

curl -XPUT 172.16.255.131:9200/vipinfo # 创建数据库
curl -XPUT 172.16.255.131:9200/vipinfo?pretty # json格式返回输出

主节点:默认配置是1个分片1个副本主数据分片: 数据在分片中被分组存储,例如如果分片是3个的话,存入数据hello可能被拆分存储在这几个分片之中副本数据分片: 对数据分片的拷贝集群健康值: 黄色表示当前配置不满足默认配置,但是存储的数据是完整的

设置索引的分片与备份

例如创建索引配置为分为5个分片,每个分片1个副本的语句如下:

curl -XPUT '172.16.255.131:9200/logsys?pretty' -H 'Content-Type:application/json' -d'{"settings": { "index": {"number_of_shards": 5, "number_of_replicas": 1}}}'

值得注意的是,在创建索引时,索引名不能包含大写字母。

02 插入文档数据

往user类型中插入3条json格式的数据,/user/1主键id不能重复,如果不指定id会随机生成id

ES相较于MySql的特点 :ES在插入数据时不需要预先创建数据库和数据表,在插入过程中如果数据库或表不存在,则直接根据插入语句中/vipinfo/user/创建对应的数据库和表。

插入数据提高性能的一种操作方式:ES的特点之一随机id机制不会出现重复情况,所以在插入数据时不自己指定主键id,这样可以直接避免在插入数据过程中进行主键id判断的性能损耗。使用随机主键的一个缺点就是给查询带来困难,一种解决方案就是在插入的数据中单独设置一个类似于MySql中主键的字段自定义主键id,便于查询操作。

curl -XPUT '172.16.255.131:9200/vipinfo/user/1?pretty' -H 'Content-Type: application/json' -d'
{"first_name": "Wang","last_name": "Haihua","age": 25,"about": "I love you","interests": ["basketball","music"]
}'
curl -XPUT '172.16.255.131:9200/vipinfo/user/2?pretty' -H 'Content-Type: application/json' -d'
{"first_name": "Wang","last_name": "Haihua","age": 25,"about": "I love you","interests": ["basketball","music"]
}'curl -XPUT '172.16.255.131:9200/vipinfo/user/3?pretty' -H 'Content-Type: application/json' -d'
{"first_name": "Wang","last_name": "Haihua","age": 25,"about": "I love you","interests": ["basketball","music"]
}'

03 查询数据

在ES-head插件中查询:实时查询,直接在对应字段进行关键词查询

查询索引所有数据:使用 GET 方法,然后增加_search命令查询索引中所有数据
curl -XGET 172.16.255.131:9200/vipinfo/_search?pretty
根据主键id查询文档数据:使用 GET 方法,并指定类型和主键id查询对应数据
curl -XGET 172.16.255.131:9200/vipinfo/user/1?pretty
根据指定条件查询文档数据:使用 GET 方法,并使用_search命令和类似于MySql中的where的命令q=type_name传查询条件参数
curl -XGET '172.16.255.131:9200/vipinfo/user/_search?p=first_name:Wang&pretty'
curl -XGET '172.16.255.131:9200/vipinfo/user/_search?p=age:25&pretty'
使用Query-string查询:可用于多条件查询
curl -XPUT '172.16.255.131:9200/vipinfo/user/_search?pretty' -H 'Content-Type: application/json' -d'
{"query": {"match": {"first_name": "Wang"}}
}'
curl -XPUT '172.16.255.131:9200/vipinfo/user/_search?pretty' -H 'Content-Type: application/json' -d'
{"query": {"bool": {"must": {"match": {"first_name": "Wang"}},"filter": {"range": {"age": {"lt": 30}   }}}}
}'
更加简单的查询-使用工具:直接使用ES-head插件进行查询,可以设置多个条件,直接避免了复杂繁琐的命令语句查询

04 修改文档数据

PUT方法更新:需要和插入一样填写完整的信息
curl -XPUT '172.16.255.131:9200/vipinfo/user/1?pretty' -H 'Content-Type: application/json' -d'
{"first_name": "Wang","last_name": "Haihua","age": 30,"about": "I love you","interests": ["basketball","music"]
}'
POST方法更新:只需要填写需要更改的信息,但是可能出现其他数据被覆盖的情况
curl -XPOST '172.16.255.131:9200/vipinfo/user/1?pretty' -H 'Content-Type: application/json' -d'
{"age": 30
}'
更加简单的修改-使用工具:直接使用ES-head插件的复合查询功能进行修改,可以反复使用,减少重复工作

05 删除数据

DELETE方法删除数据:直接使用DELETE方法删除文档数据或者整个索引
curl -XPUT '172.16.255.131:9200/vipinfo/uesr/1?pretty'
curl -XPUT 172.16.255.131:9200/vipinfo?pretty
更加简单的删除-使用工具:直接使用ES-head插件的复合查询功能进行删除,可以反复使用,减少重复工作

更多推荐

操作,基础,Elasticsearch,ES

本文发布于:2023-05-29 23:11:34,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/355121.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:操作   基础   Elasticsearch   ES

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!