ES基本CURD使用、DSL搜索、 高亮显示、分页、批量操作

10 min read

ES基本CURD操作是指在Elasticsearch中进行的增、删、改、查操作,即Create、Update、Retrieve、Delete。

  1. 创建文档:

    PUT /index/_doc/1
    {
      "field1": "value1",
      "field2": "value2"
    }
    
  2. 更新文档:

    POST /index/_update/1
    {
      "doc": {
        "field1": "new_value1"
      }
    }
    
  3. 获取文档:

    GET /index/_doc/1
    
  4. 删除文档:

    DELETE /index/_doc/1
    

DSL搜索是Elasticsearch提供的一种强大的查询语言,具有丰富的查询功能,可以根据各种条件进行查询。

以下是一个DSL搜索的示例:

GET /index/_search
{
  "query": {
    "match": {
      "field1": "value1"
    }
  }
}

上述查询使用match查询来匹配field1字段的值为value1的文档。

高亮显示可以在搜索结果中对匹配的查询字段进行突出显示。

以下是一个高亮显示的示例:

GET /index/_search
{
  "query": {
    "match": {
      "field1": "value1"
    }
  },
  "highlight": {
    "fields": {
      "field1": {}
    }
  }
}

上述查询将对匹配的文档的field1字段进行高亮显示。

分页可以使用fromsize参数进行控制,从而实现对搜索结果进行分页显示。

以下是一个分页的示例:

GET /index/_search
{
  "from": 0,
  "size": 10,
  "query": {
    "match_all": {}
  }
}

上述查询将返回从第0条开始的10条搜索结果。

批量操作可以在一次请求中执行多个CURD操作,提高效率。

以下是一个批量操作的示例:

POST /index/_bulk
{ "index": { "_id": "1" } }
{ "field1": "value1" }
{ "update": { "_id": "2" } }
{ "doc": { "field1": "new_value1" } }
{ "delete": { "_id": "3" } }

上述请求将创建一个新文档、更新另一个文档和删除第三个文档。提交请求后,Elasticsearch将按顺序执行这些操作。