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