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映射