返回

Elasticsearch 基本使用姿势二

后端

查询指定字段

Elasticsearch 允许您查询特定字段。只需在查询中指定字段名称即可。例如,要查询标题字段中包含“Elasticsearch”一词的文档,可以使用以下查询:

{
  "query": {
    "match": {
      "title": "Elasticsearch"
    }
  }
}

限制返回条数

默认情况下,Elasticsearch 会返回所有匹配查询的文档。但是,您可以使用 size 参数限制返回的文档数量。例如,要限制返回的前 10 个文档,可以使用以下查询:

{
  "query": {
    "match_all": {}
  },
  "size": 10
}

分页查询

Elasticsearch 还允许您对查询结果进行分页。为此,您需要使用 fromsize 参数。from 参数指定要跳过的文档数,size 参数指定要返回的文档数。例如,要跳过前 10 个文档并返回接下来的 10 个文档,可以使用以下查询:

{
  "query": {
    "match_all": {}
  },
  "from": 10,
  "size": 10
}

分组查询

Elasticsearch 允许您对查询结果进行分组。为此,您需要使用 group_by 参数。group_by 参数指定要分组的字段。例如,要按作者对查询结果进行分组,可以使用以下查询:

{
  "query": {
    "match_all": {}
  },
  "group_by": "author"
}

高亮

Elasticsearch 允许您高亮查询结果中的匹配文本。为此,您需要使用 highlight 参数。highlight 参数指定要高亮的字段。例如,要高亮标题字段中的匹配文本,可以使用以下查询:

{
  "query": {
    "match": {
      "title": "Elasticsearch"
    }
  },
  "highlight": {
    "fields": {
      "title": {}
    }
  }
}

自动补全提示

Elasticsearch 允许您提供自动补全提示。为此,您需要使用 suggest 参数。suggest 参数指定要提供自动补全提示的字段。例如,要为标题字段提供自动补全提示,可以使用以下查询:

{
  "suggest": {
    "title-suggest": {
      "prefix": "Elastic",
      "completion": {
        "field": "title"
      }
    }
  }
}

排序

Elasticsearch 允许您对查询结果进行排序。为此,您需要使用 sort 参数。sort 参数指定要排序的字段和排序顺序。例如,要按标题字段升序对查询结果进行排序,可以使用以下查询:

{
  "query": {
    "match_all": {}
  },
  "sort": [
    {
      "title": {
        "order": "asc"
      }
    }
  ]
}

返回结果聚合

Elasticsearch 允许您对查询结果进行聚合。为此,您需要使用 aggregations 参数。aggregations 参数指定要执行的聚合类型。例如,要统计查询结果中包含的文档数量,可以使用以下查询:

{
  "query": {
    "match_all": {}
  },
  "aggregations": {
    "total_docs": {
      "value_count": {
        "field": "_doc"
      }
    }
  }
}