前言
我们前面写过ES基础操作和ES高级查询 写的都很细,但是很多时候我们仅仅是忘记具体的某个语法,去那两篇博客查找就很麻烦了,这篇博客就把常用的ES操作进行总结。
常用操作
- 建索引(建表,不过并没有指定字段名和类型)
向ES服务器发送PUT请求:
http://127.0.0.1:9200/索引名
- 删除索引(删表)
向ES服务器发送DELETE请求:
http://127.0.0.1:9200/索引名
- 创建文档(往表中插入数据)
向 ES 服务器发 POST 请求:
http://127.0.0.1:9200/索引名/_doc请求体内容:
{
"name":"zs",
"age":23
}
一般都会指定唯一id:
向 ES 服务器发 POST 请求:
http://127.0.0.1:9200/索引名/_doc/1请求体内容:
{
"name":"zs",
"age":23
}
- 根据唯一id查看对应的一行数据
向 ES 服务器发 GET 请求 :
http://127.0.0.1:9200/索引名/_doc/1
- 根据唯一id更新对应的一条数据中所有字段
向 ES 服务器发 POST 请求 :
http://127.0.0.1:9200/索引名/_doc/1请求体中写入要插入的json字符串
{
"name":"ls",
"age":24
}
- 根据唯一id更新一行指定字段的数据
向 ES 服务器发 POST 请求 :
http://127.0.0.1:9200/索引名/_update/1请求体内容:
{ "doc": {"age":24}
}
- 根据唯一标识删除一行数据
向 ES 服务器发 DELETE 请求 :
http://127.0.0.1:9200/索引名/_doc/1
- 根据查询条件删除对应的数据
向 ES 服务器发 POST 请求 :
http://127.0.0.1:9200/索引名/_delete_by_query请求体内容:
{"query":{"match":{"price":4000.00}}
}
- 给索引添加映射
向 ES 服务器发 PUT或者POST 请求 :
http://127.0.0.1:9200/索引名/_mapping请求体内容:
{"properties": {"name":{"type": "text","index": true},"age":{"type": "long","index": false}}
}
- 给索引新增一个字段
向 ES 服务器发 PUT 请求 :
http://127.0.0.1:9200/索引名/_mapping请求体内容:
{"properties": {"sex": {"type": "text"}}
}
- 查看映射
向 ES 服务器发 GET 请求 :
http://127.0.0.1:9200/索引名/_mapping
- 查看所有文档
向 ES 服务器发 GET 请求 :http://127.0.0.1:9200/索引名/_search请求体内容:
{"query": {"match_all": {}}
}
- 分词(match)匹配查询
向 ES 服务器发 GET 请求 :
http://127.0.0.1:9200/索引名/_search
请求体内容:
{"query": {"match": {"name":"zs"}}
}
- 精确(term)查询
向 ES 服务器发 GET 请求 :
http://127.0.0.1:9200/索引名/_search
请求体内容:{"query": {"term": {"name": {"value": "zhangsan"}}}
}
- 组合查询(bool把各种其它查询通过must(必须 )、must_not(必须不)、should(应该)的方式进行组合)
向 ES 服务器发 GET 请求 :
http://127.0.0.1:9200/索引名/_search请求体内容:
{"query": {"bool": {"must": [{"match": {"name": "zhangsan"}}],"must_not": [{"match": {"nickname": "lisi"}}]}}
}
- 范围查询
向 ES 服务器发 GET 请求 :
http://127.0.0.1:9200/索引名/_search
请求体内容:
{"query": {"range": {"age": {"gte": 30,"lte": 35}}}
}
- 模糊查询
向 ES 服务器发 GET 请求 :
http://127.0.0.1:9200/索引名/_search
请求体内容:
{"query": {"fuzzy": {"name": {"value": "zhangsan","fuzziness": 2}}}
}
- 单个字段排序
向 ES 服务器发 GET 请求 :
http://127.0.0.1:9200/索引名/_search
请求体内容:
{"query": {"match": {"name": "zhangsan"}},"sort": [{"age": {"order": "desc"}}]
}
- 多个字段排序
向 ES 服务器发 GET 请求 :
http://127.0.0.1:9200/索引名/_search
请求体内容:
{"query": {"match_all": {}},"sort": [{"age": {"order": "desc"}},{"_id": {"order": "desc"}}]
}