Elasticsearch 语法指南(全)

本文涉及的产品
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
简介: Elasticsearch 语法指南(全)

所有的语句默认都是没有用户名和密码,如果你的 es 集群做了安全认证的话,请在每一个 crul 后面加上 -u username:password

例如:

curl -u admin:123456 -XGET "http://172.0.0.52:9200/_cat"

1集群支持的选项

curl -XGET "http://172.0.0.52:9200/_cat"

2查看节点信息

curl -XGET "http://172.0.0.52:9200/_cat/nodes?v"

3查看master节点信息

curl -XGET "http://172.0.0.52:9200/_cat/master?v"

4查看所有节点上的热点线程

curl -XGET "http://172.0.0.52:9200/_nodes/hot_threads"

5查看有问题的分片或索引

curl -XGET "http://172.0.0.52:9200/_cluster/allocation/explain?pretty"

6查看线程池设置

curl -XGET "http://172.0.0.52:9200/_nodes/thread_pool/"

7统计全部信息

curl -XGET "http://172.0.0.52:9200/_cluster/stats?human&pretty"

8查看集群状态

curl -XGET "http://172.0.0.52:9200/_cluster/health?pretty"

9查看ES信息

curl -XGET "http://172.0.0.52:9200/"

10获取所有索引的信息

curl -XGET "http://172.0.0.52:9200/_cat/indices?v&pretty"
curl -XGET "http://172.0.0.52:9200/_cat/nodes?v"
curl -XGET "http://172.0.0.52:9200/_cat/segments?v&h=shard,segment,size,size.memory" 

11获取所有文档数量

curl -XGET "http://172.0.0.52:9200/_count?pretty" -H 'Content-Type: application/json' -d' { "query": { "match_all": {} } }'

12查看集群的健康状态

  1. green:所有功能都是完好的;
  2. yellow:所有数据是可用的,但是一些副本还没有被分配;
  3. red代表一些数据由于某些原因已经不可用。

注意尽管一个集群是red状态,它仍然可以提供部分服务(比如,它会继续从可用的切片数据里搜索),但是在失去部分数据后,需要尽快去修复。

curl -XGET "http://172.0.0.52:9200/_cat/health?v"

13创建索引

  • test_one 索引名
  • pretty 参数表示输出格式良好的JSON响应(如果存在)
curl -XPUT "http://172.0.0.52:9200/test_one?pretty"

14查看索引列表

curl -XGET "http://172.0.0.52:9200/_cat/indices?v"
curl -XGET "http://172.0.0.52:9200/test_one"

15删除索引

根据索引名称删除。

curl -XDELETE "http://172.0.0.52:9200/test_one?pretty"
  • 可以一次删除多个索引(以逗号间隔)
  • 删除所有索引_all或通配符 *

16创建文档

使用PUT来创建文档,需要指定id。

  • 索引 index:test_one
  • 类型 type:test_type
  • _id:1
curl -XPUT "http://172.0.0.52:9200/test_one/test_type/1?pretty" -H 'Content-Type: application/json' -d' {"name": "ghl", "age": 24, "sex": "male"}'

使用POST来创建文档,可以不指定id(不指定时随机生成id)

curl -XPOST "http://172.0.0.52:9200/test_one/test_type?pretty" -H 'Content-Type: application/json' -d' {"name": "Jack"}'

17查看文档

curl -XGET "http://172.0.0.52:9200/test_one/test_type/1?pretty"

18替换文档

使用PUT并指定id时,es会使用新的文档替换原文档。

curl -XPUT "http://172.0.0.52:9200/test_one/test_type/1?pretty" -H 'Content-Type: application/json' -d' {"name": "Jack"}'

19更新文档

curl -XPOST "http://172.0.0.52:9200/test_one/test_type/1/_update?pretty" -H 'Content-Type: application/json' -d' {"doc":{"name": "Lucy"}}'

20删除文档

curl -XDELETE "http://172.0.0.52:9200/test_one/test_type/1?pretty"

索引的增删改查有一个类似的格式下:

  • REST风格的语法谓词
  • 节点ip
  • 节点端口号,默认9200
  • 索引名
  • 索引类型
  • 操作对象的ID号
curl -XGET "http://172.0.0.52:9200/<Index>/<Type>/<ID>"

21判断索引是否存在

curl -XHEAD "http://172.0.0.52:9200/test_one"

22查看索引模板

curl -XGET "http://172.0.0.52:9200/_template/template_1"
curl -XGET "http://172.0.0.52:9200/_template/temp*"
curl -XGET "http://172.0.0.52:9200/_template/template_1,template_2" curl -XGET "http://172.0.0.52:9200/_template" 

23删除模板

curl -XDELETE "http://172.0.0.52:9200/_template/template_1"

24打开/关闭索引

curl -XPOST "http://172.0.0.52:9200/test_one/_close"
curl -XPOST "http://172.0.0.52:9200/test_one/_open"
curl -XGET "http://172.0.0.52:9200/_cat/indices?v" 

25查看索引状态信息

curl -XGET "http://172.0.0.52:9200/_stats"
curl -XGET "http://172.0.0.52:9200/logstash-nginx-access-2019.08.07,test_one/_stats"

26查看索引段信息

curl -XGET "http://172.0.0.52:9200/test_one/_segments"
curl -XGET "http://172.0.0.52:9200/logstash-nginx-access-2019.08.07,test_one/_segments"
curl -XGET "http://172.0.0.52:9200/_segments"


相关实践学习
使用阿里云Elasticsearch体验信息检索加速
通过创建登录阿里云Elasticsearch集群,使用DataWorks将MySQL数据同步至Elasticsearch,体验多条件检索效果,简单展示数据同步和信息检索加速的过程和操作。
ElasticSearch 入门精讲
ElasticSearch是一个开源的、基于Lucene的、分布式、高扩展、高实时的搜索与数据分析引擎。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr(也是基于Lucene)。 ElasticSearch的实现原理主要分为以下几个步骤: 用户将数据提交到Elastic Search 数据库中 通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据 当用户搜索数据时候,再根据权重将结果排名、打分 将返回结果呈现给用户 Elasticsearch可以用于搜索各种文档。它提供可扩展的搜索,具有接近实时的搜索,并支持多租户。
相关文章
|
11月前
|
Web App开发 自然语言处理 API
巧记Elasticsearch常用DSL语法
记知识先记轮廓,关于DSL语法的轮廓,记住以下3句话即可:1.索引、文档和查询。2.Match、Term和Bool。3.还有翻页和聚合
巧记Elasticsearch常用DSL语法
|
3月前
|
SQL 安全 数据挖掘
Elasticsearch如何聚合查询多个统计值,如何嵌套聚合?并相互引用,统计索引中某一个字段的空值率?语法是怎么样的?
Elasticsearch聚合查询用于复杂数据分析,包括统计空值率。示例展示了如何计算字段`my_field`非空非零文档的百分比。查询分为三步:总文档数计数、符合条件文档数计数及计算百分比。聚合概念涵盖度量、桶和管道聚合。脚本在聚合中用于动态计算。常见聚合类型如`sum`、`avg`、`date_histogram`等。组合使用可实现多值统计、嵌套聚合和空值率计算。[阅读更多](https://zhangfeidezhu.com/?p=515)
280 0
Elasticsearch如何聚合查询多个统计值,如何嵌套聚合?并相互引用,统计索引中某一个字段的空值率?语法是怎么样的?
|
缓存 JSON 自然语言处理
Elasticsearch系列——在使用Kibana查询时,只查询某个字段的值的语法
Elasticsearch系列——在使用Kibana查询时,只查询某个字段的值的语法
|
SQL JSON 搜索推荐
java操作ElasticSearch(包含增删改查及基础语法操作)(一)
java操作ElasticSearch(包含增删改查及基础语法操作)
401 0
java操作ElasticSearch(包含增删改查及基础语法操作)(一)
ElasticSearch聚合查询Restful语法和JavaApi详解(基于ES7.6)
在前面关于ES的一系列文章中,已经介绍了ES的概念、常用操作、JavaAPI以及实际的一个小demo,但是在真实的应用场景中,还有可能会有更高阶的一些用法,今天主要介绍两种相对来说会更难一些的操作,聚合查询。该文档基于ElasticSearch7.6,将介绍restful查询语法以及JavaApi。 阅读本文需要你有ElasticSearch的基础。
|
JSON 缓存 搜索推荐
Elasticsearch(Kibana)基本语法
ES全称ElasticSearch,是一个基于Lucene的搜索服务器。(其实就是对Lucene进行封装,提供了REST API的操作接口)
113 0
白话Elasticsearch12-深度探秘搜索技术之基于multi_match + best fields语法实现dis_max+tie_breaker
白话Elasticsearch12-深度探秘搜索技术之基于multi_match + best fields语法实现dis_max+tie_breaker
83 0
|
存储 JSON 自然语言处理
40-微服务技术栈(高级):分布式搜索引擎ElasticSearch(DSL语法、搜索结果[排序/分页/高亮]处理)
在前面的学习中,笔者带领大家完成海量数据导入ES,实现了ES基本的存储功能,但是我们知道ES最擅长的还是搜索、数据分析。所以本节笔者将继续带领大家研究一下ES的数据搜索功能,同上节一样,继续分别采用DSL和RestClient实现搜索。
121 0
|
JSON 自然语言处理 算法
ElasticSearch(三)基础语法
ElasticSearch(三)基础语法
116 0