ElasticSearch Rest风格操作(二)文档操作

ElasticSearch Rest风格操作(二)文档操作

1、基本操作

1.1、添加数据

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

在这里插入图片描述

1.2、获取数据 GET

GET kuangshen/user/1

1.3、更新数据 PUT

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

在这里插入图片描述

1.4、更新数据 POSt _update,推荐使用

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

在这里插入图片描述

1.5、简单搜索

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

在这里插入图片描述

2、高级操作

2.1、基本查询

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

2.2、结果过滤

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

2.3、排序

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

2.4、分页

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

2.5、多条件查询

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 (过滤器)

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

2.6、多条件匹配

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

2.7、精准查询

注意: keyword字段类型不会被分词器解析

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

多条件查询

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

2.7、高亮查询

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

在这里插入图片描述
自定义高亮标签

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

特别鸣谢:狂神说Java

猜你喜欢

转载自blog.csdn.net/Asia1752/article/details/111318987