常用的es操作

前言

我们前面写过ES基础操作ES高级查询 写的都很细,但是很多时候我们仅仅是忘记具体的某个语法,去那两篇博客查找就很麻烦了,这篇博客就把常用的ES操作进行总结。

常用操作

  1. 建索引(建表,不过并没有指定字段名和类型)
text 复制代码
向ES服务器发送PUT请求:
http://127.0.0.1:9200/索引名
  1. 删除索引(删表)
text 复制代码
向ES服务器发送DELETE请求:
http://127.0.0.1:9200/索引名
  1. 创建文档(往表中插入数据)
text 复制代码
向 ES 服务器发 POST 请求:
http://127.0.0.1:9200/索引名/_doc

请求体内容:
{
"name":"zs",
"age":23
}

一般都会指定唯一id:

text 复制代码
向 ES 服务器发 POST 请求:
http://127.0.0.1:9200/索引名/_doc/1

请求体内容:
{
"name":"zs",
"age":23
}
  1. 根据唯一id查看对应的一行数据
text 复制代码
向 ES 服务器发 GET 请求 :
http://127.0.0.1:9200/索引名/_doc/1
  1. 根据唯一id更新对应的一条数据中所有字段
text 复制代码
向 ES 服务器发 POST 请求 :
http://127.0.0.1:9200/索引名/_doc/1

请求体中写入要插入的json字符串
{
"name":"ls",
"age":24
}
  1. 根据唯一id更新一行指定字段的数据
text 复制代码
向 ES 服务器发 POST 请求 :
http://127.0.0.1:9200/索引名/_update/1

请求体内容:
{ 
 "doc": {
 "age":24
 } 
}
  1. 根据唯一标识删除一行数据
text 复制代码
向 ES 服务器发 DELETE 请求 :
http://127.0.0.1:9200/索引名/_doc/1
  1. 根据查询条件删除对应的数据
text 复制代码
向 ES 服务器发 POST 请求 :
http://127.0.0.1:9200/索引名/_delete_by_query

请求体内容:
{
 "query":{
	 "match":{
	 "price":4000.00
	 }
 }
}
  1. 给索引添加映射
text 复制代码
向 ES 服务器发 PUT或者POST 请求 :
http://127.0.0.1:9200/索引名/_mapping

请求体内容:
{
 "properties": {
	 "name":{
	 "type": "text",
	 "index": true
	 },
	 "age":{
	 "type": "long",
	 "index": false
	 }
 }
}
  1. 给索引新增一个字段
text 复制代码
向 ES 服务器发 PUT 请求 :
http://127.0.0.1:9200/索引名/_mapping

请求体内容:
{
  "properties": {
    "sex": {
      "type": "text"
    }
  }
}
  1. 查看映射
text 复制代码
向 ES 服务器发 GET 请求 :
http://127.0.0.1:9200/索引名/_mapping
  1. 查看所有文档
text 复制代码
向 ES 服务器发 GET 请求 :http://127.0.0.1:9200/索引名/_search

请求体内容:
{
 "query": {
 "match_all": {}
 }
}
  1. 分词(match)匹配查询
text 复制代码
向 ES 服务器发 GET 请求 :
http://127.0.0.1:9200/索引名/_search
请求体内容:
{
 "query": {
	 "match": {
	 "name":"zs"
	 }
 }
}
  1. 精确(term)查询
text 复制代码
向 ES 服务器发 GET 请求 :
http://127.0.0.1:9200/索引名/_search
请求体内容:

{
    "query": {
        "term": {
            "name": {
                "value": "zhangsan"
            }
        }
    }
}
  1. 组合查询(bool把各种其它查询通过must(必须 )、must_not(必须不)、should(应该)的方式进行组合)
text 复制代码
向 ES 服务器发 GET 请求 :
http://127.0.0.1:9200/索引名/_search

请求体内容:
{
    "query": {
        "bool": {
            "must": [
                {
                    "match": {
                        "name": "zhangsan"
                    }
                }
            ],
            "must_not": [
                {
                    "match": {
                        "nickname": "lisi"
                    }
                }
            ]
        }
    }
}
  1. 范围查询
text 复制代码
向 ES 服务器发 GET 请求 :
http://127.0.0.1:9200/索引名/_search
请求体内容:
{
    "query": {
        "range": {
            "age": {
                "gte": 30,
                "lte": 35
            }
        }
    }
}
  1. 模糊查询
text 复制代码
向 ES 服务器发 GET 请求 :
http://127.0.0.1:9200/索引名/_search
请求体内容:
{
    "query": {
        "fuzzy": {
            "name": {
                "value": "zhangsan",
                "fuzziness": 2
            }
        }
    }
}
  1. 单个字段排序
text 复制代码
向 ES 服务器发 GET 请求 :
http://127.0.0.1:9200/索引名/_search
请求体内容:
{
    "query": {
        "match": {
            "name": "zhangsan"
        }
    },
    "sort": [
        {
            "age": {
                "order": "desc"
            }
        }
    ]
}
  1. 多个字段排序
text 复制代码
向 ES 服务器发 GET 请求 :
http://127.0.0.1:9200/索引名/_search
请求体内容:
{
    "query": {
        "match_all": {}
    },
    "sort": [
        {
            "age": {
                "order": "desc"
            }
        },
        {
            "_id": {
                "order": "desc"
            }
        }
    ]
}
相关推荐
赵成默2 天前
es 的字段类型(text和keyword)
elasticsearch·es
G皮T3 天前
【Elasticsearch】Elasticsearch 核心技术(一):索引
大数据·elasticsearch·kibana·es·索引·索引别名·索引模板
码农爱java16 天前
Spring Boot 集成 Elasticsearch【实战】
大数据·spring boot·elasticsearch·全文检索·es
ThomasChan12317 天前
Win10 安装单机版ES(elasticsearch),整合IK分词器和安装Kibana
java·大数据·elasticsearch·搜索引擎·全文检索·jenkins·es
2685725918 天前
Elasticsearch 初步认识
大数据·elasticsearch·搜索引擎·全文检索·es
真实的菜20 天前
Elasticsearch 分片机制高频面试题(含参考答案)
elasticsearch·搜索引擎·es
信仰JR1 个月前
OpenKylin安装Elastic Search8
elasticsearch·es
Cloud_.2 个月前
Spring Boot整合Elasticsearch
java·spring boot·后端·elasticsearch·es
码农爱java2 个月前
Elasticsearch 之 ElasticsearchRestTemplate 普通查询
大数据·elasticsearch·全文检索·jenkins·springboot·es·es 查询
Elastic开源社区3 个月前
Search after解决ES深度分页问题
大数据·elasticsearch·es·search after·深度分页