ElasticSearch基础 增删改查进阶归纳

1.批量操作 _bulk

POST /customer/external/_bulk
{"index":{"_id":3}}
{"name":"John Doe3"}
{"create":{"_id":4}}
{"name":"John Doe3"}
//data每2个json绑定数据 第1json指定文档 第2json绑定前1个json数据
//后面同上


//也可以把指定的索引 文档 写在下面json中 如下
POST _bulk
{ "delete" : { "_index" : "customer", "_id" : "4" } }
{ "field1" : "value1" }
{ "delete" : { "_index" : "test", "_id" : "2" } }
{ "create" : { "_index" : "test", "_id" : "3" } }
{ "field1" : "value3" }
{ "update" : {"_id" : "1", "_index" : "test"} }
{ "doc" : {"field2" : "value2"} }

2.检索操作 _search

参考官方文档https://www.elastic.co/guide/en/elasticsearch/reference/7.4/getting-started-search.html
查询条件可以选择放url?xx= 后面
也可以放在json中
如
GET /bank/_search?q=*&sort=account_number:asc
如
GET /bank/_search
{
  "query": { "match_all": {} },
  "sort": [
    { "account_number": "asc" }
  ]
}
GET /bank/_search
{"query": {    //查询条件
  "match_all": {}
  },
  "sort": [    //排序方式
    {
      "age": "desc"    //按age字段降序
    }
  ]  ,
  "from": 0,    //分页从第0条获取
  "size": 20,    //共拿20条数据
  "_source": "{age}"    //返回age字段 返回多个用["age","name"]这种数组表示
}
//下面对query的api说明(重点!!!!!!!!!!!!!!!!)
//1.查询出所有match_all
"query": {
  "match_all": {} 
  },

//2.match分词匹配 匹配查询字段 name字段有包含‘王’‘李’关键字被查出来
"query": {
  "match": {
    "name": "王李"
  }
  },

//3.match_phrase短语匹配 匹配'王李'这个词 不做分词去查 
//建议在全文检索时用match_phrase 精确匹配时使用term
"match_phrase": { "name": "王李" } //4.mul ti_match多字段匹配 字段firstname或字段lastname包含‘王’‘李’关键字被查出 有做分词 "multi_match": { "query": "王李", "fields": ["firstname","lastname"] } //5.bool多条件匹配 来组合多个查询条件 外层加个bool 里面must表示必须匹配 must_not表示必须不匹配 should表示可以匹配 再把条件match写在里面 "query": { "bool": { "must": [ {"match": { "FIELD": "TEXT" }} ], "must_not": [ {"match": { "FIELD": "TEXT" } } ], "should": [ {"match": { "FIELD": "TEXT" }} ] }, }
//全文检索用match 精确查询最好用term
如:
{"query": {
  "term": {
    "age":20
  }
}}

3.聚合索引

4.mapping映射

原文地址:https://www.cnblogs.com/hbhb/p/14646065.html