使用curl命令操作Elasticsearch

导读:本篇文章讲解 使用curl命令操作Elasticsearch,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

前言

Elasticsearch 7.9.0

curl是利用URL语法在命令行方式下工作的开源文件传输工具,使用curl可以简单实现常见的get/post请求。简单的认为是可以在命令行下面访问url的一个工具。在centos的默认库里面是有curl工具的,如果没有请yum安装即可。

curl

-X 指定http的请求方法 有HEAD GET POST PUT DELETE
-d 指定要传输的数据
-H 指定http请求头信息


一、创建&查询

1、使用XPUT创建索引

curl -XPUT http://147.243.118.226:9200/big_test/?pretty
# 默认一个分片,一个副本。

在这里插入图片描述

2、插入文档

curl -H "Content-Type: application/json" -XPOST http://147.243.118.226:9200/big_test/1?pretty -d  '{"id": "1", "title": "What is lucene"}'

3、根据字段查询文档

curl -H "Content-Type: application/json" -XGET http://147.243.118.226:9200/big_test/?pretty -d '{"query":{"match":{"id":"1"}

4、更新文档(根据_id’I60jRoABojYjz-e3NDIz’)

curl -H "Content-Type: application/json" -XPUT http://147.243.118.226:9200/big_test/_doc/I60jRoABojYjz-e3NDIz?pretty -d '{"id": "1", "title": " What is elasticsearch==="}'

5、删除文档(连带索引和数据都删除)

curl -XDELETE "http://47.243.118.226:9200/big_test?pretty"

6、删除索引库的数据(按照条件23小时以前的数据删除)

#!/bin/bash

#当前时间减23小时
#date "+%Y-%m-%d %H:%M:%S" -d '-23 hours'
date1=`date "+%Y-%m-%d %H:%M:%S" -d '-23 hours'`
#echo $date1
curl -H "Content-Type: application/json" -XPOST http://147.243.118.226:9200/d_other_youtube/_delete_by_query?pretty -d "{\"query\":{\"range\":{\"createTimeDate\":{\"lte\":\"$date1\"}}}}"

在这里插入图片描述

二、返回值说明

1、Hits

  • 返回结果中最重要的部分是 hits ,它包含 total 字段来表示匹配到的文档总数,并且一个 hits 数组包含所查询结果的前十个文档
  • 在 hits 数组中每个结果包含文档的 _index 、 _type 、 _id ,加上 _source 字段。这意味着我们可以直接从返回的搜索结果中使用整个文档。这不像其他的搜索引擎,仅仅返回文档的ID,需要你单独去获取文档。
  • 每个结果还有一个 _score ,它衡量了文档与查询的匹配程度。默认情况下,首先返回最相关的文档结果,就是说,返回的文档是按照 _score 降序排列的。在这个例子中,我们没有指定任何查询,故所有的文档具有相同的相关性,因此对所有的结果而言 1 是中性的 _score 。
  • max_score 值是与查询所匹配文档的 _score 的最大值。

2、took

took 值告诉我们执行整个搜索请求耗费了多少毫秒

3、Shark

  • 创建时,影响的是一个分片, 这一个分片是指的一个副本
  • 查询时,影响一个分片(默认)
    _shards 部分 告诉我们在查询中参与分片的总数,以及这些分片成功了多少个失败了多少个。正常情况下我们不希望分片失败,但是分片失败是可能发生的。
    如果我们遭遇到一种灾难级别的故障,在这个故障中丢失了相同分片的原始数据和副本,那么对这个分片将没有可用副本来对搜索请求作出响应。假若这样,Elasticsearch 将报告这个分片是失败的,但是会继续返回剩余分片的结果。

4、timeout

timed_out 值告诉我们查询是否超时。默认情况下,搜索请求不会超时。 如果低响应时间比完成结果更重要,你可以指定 timeout 为 10 或者 10ms(10毫秒),或者 1s(1秒):


总结

如果此篇文章有帮助到您, 希望打大佬们能关注点赞收藏评论支持一波,非常感谢大家!
如果有不对的地方请指正!!!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/88122.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!