Elastic search查询语句

 2024-07-31    0 条评论    24962 浏览

es

本博客内容,请登录后查看




Query与filter的区别

主要区别在于query会计算评分而对筛选结果做排序,而filter不会计算评分;

filter中一般没有match查询,但是可以通过bool包含filter,来使用match查询,此时无评分;

相同查询(例如term、bool),依然是filter查询效率更高;

filter可以单独使用,但是大多场景是在bool查询中与其他查询条件组合使用(must、must not、should)

Query查询

在Elasticsearch中,查询(query)功能非常强大,支持多种查询类型,可以满足各种搜索需求。以下是Elasticsearch中一些常见的查询类型的详细介绍:

Match Query

match查询是最常用的查询之一,用于全文搜索。它会对输入文本进行分词,然后查找包含这些词项的文档。

示例:

{
  "query": {
    "match": {
      "description": "quick brown fox"
    }
  }
}

这个查询会对description字段进行分词,并查找包含quickbrownfox词项的文档。

Term Query

term查询是精确匹配查询,用于查找字段中确切包含指定词项的文档。它不进行分词处理,适合于结构化数据的查询,如数值、日期、布尔值或未分析的文本字段。

示例:

{
  "query": {
    "term": {
      "status": "active"
    }
  }
}

这个查询将返回所有status字段值为active的文档。

Range Quer