ElasticSearch Rest style operation (two) document operation

ElasticSearch Rest style operation (two) document operation

1. Basic operation

1.1, add data

PUT /kuangshen/user/1
{
  "name":"狂神说",
  "age":23,
  "desc":"一顿操作猛如虎,一看工资2500",
  "tags":["技术宅","暖男","直男"]
}

Insert picture description here

1.2, get data GET

GET kuangshen/user/1

1.3, update data PUT

PUT /kuangshen/user/3
{
  "name":"李四233",
  "age":30,
  "desc":"mmp,不知道如何形容",
  "tags":["靓女","旅游","唱歌"]
}

Insert picture description here

1.4, update data POSt _update, recommended

POST /kuangshen/user/1/_update
{
  "doc":{
    "name":"好先生"
  }
}

Insert picture description here

1.5, simple search

GET kuangshen/user/_search?q=name:好先生

Insert picture description here

2. Advanced operation

2.1, basic query

GET kuangshen/user/_search
{
  "query":{
    "match":{
      "name":"先生"
    }
  }
}

2.2, result filtering

GET kuangshen/user/_search
{
  "query":{
    "match":{
      "name":"先生"
    }
  },
  "_source": ["name","desc"]
}

2.3 Sort

GET kuangshen/user/_search
{
  "query":{
    "match":{
      "name":"先生"
    }
  },
  "sort": [
    {
      "age": {
        "order": "desc"
      }
    }
  ]
}

2.4, paging

GET kuangshen/user/_search
{
  "query":{
    "match":{
      "name":"先生"
    }
  },
  "sort": [
    {
      "age": {
        "order": "desc"
      }
    }
  ],
  "from": 0,
  "size":1
}

2.5, multi-condition query

must (and)

GET kuangshen/user/_search
{
  "query": {
    "bool": {
      "must": [
        {
          "match": {
            "name": "先生"
          }
        },{
          "match": {
            "age": 23
          }
        }
      ]
    }
  }
}

should (or)

GET kuangshen/user/_search
{
  "query": {
    "bool": {
      "should": [
        {
          "match": {
            "name": "先生"
          }
        },{
          "match": {
            "age": 23
          }
        }
      ]
    }
  }
}

must_not (not)

GET kuangshen/user/_search
{
  "query": {
    "bool": {
      "must_not": [
        {
          "match": {
            "age": 23
          }
        }
      ]
    }
  }
}

filter (filter)

GET kuangshen/user/_search
{
  "query": {
    "bool": {
      "must": [
        {
          "match": {
            "name": "先生"
          }
        }
      ],
      "filter": [
        {
          "range": {
            "age": {
              "gte": 10
            }
          }
        }
      ]
    }
  }
}

2.6, multi-condition matching

GET kuangshen/user/_search
{
  "query": {
    "match": {
      "tags":"男 技术"
    }
  }
}

2.7, precise query

note: The keyword field type will not be parsed by the tokenizer

GET kuangshen/user/_search
{
  "query": {
    "term": {
      "name":"先"
    }
  }
}

Multi-condition query

GET kuangshen/user/_search
{
  "query": {
    "bool": {
      "should": [
        {
          "term": {
            "name": {
              "value": "好"
            }
          }
        },{
          "term": {
            "tags": {
              "value": "技术"
            }
          }
        }
      ]
    }
  }
}

2.7, highlight query

GET kuangshen/user/_search
{
  "query": {
    "match": {
      "name": "先生"
    }
  },
  "highlight": {
    "fields": {
      "name":{}
    }
  }
}

Insert picture description here
Custom highlight label

GET kuangshen/user/_search
{
  "query": {
    "match": {
      "name": "先生"
    }
  },
  "highlight": {
    "pre_tags": "<p class='key'>", 
    "post_tags": "</p>", 
    "fields": {
      "name":{}
    }
  }
}

Special thanks: Mad God said Java

Guess you like

Origin blog.csdn.net/Asia1752/article/details/111318987