【2】Elasticsearch 查询从基础到高级
文章目录
-
- 一、引言
- 二、常用查询方式
-
- (一)简单查询
- (二)聚合查询
- (三)复杂查询
- 三、查询关键词
-
- (一)比较关键词
- (二)逻辑关键词
- (三)其他关键词
- 四、常用统计类查询
-
- (一)计数统计
- (二)平均值统计
- 五、总结
一、引言
Elasticsearch是一款强大的分布式搜索和分析引擎,在数据检索和分析领域有着广泛的应用。掌握其查询方式是充分发挥Elasticsearch功能的关键,本文将详细介绍ES的常用查询方式。
二、常用查询方式
(一)简单查询
- match查询
- 原理与应用场景:match查询会对查询条件进行分词处理。适用于全文搜索,例如在文章内容字段中查找包含特定关键词的文档。
- demo:
{
"query": {
"match": {
"article_content": "数据分析"
}
}
}
在上述示例中,我们在article_content
字段中查找包含“数据分析”的文档。Elasticsearch会将“数据分析”分词为“数据”和“分析”,然后查找包含这两个词的文档。
2. term查询
- 原理与应用场景:term查询是精确匹配,不会对查询词进行分词。常用于查询结构化数据,如数字、日期、布尔值等。
- demo:
{
"query": {
"term": {
"status": "active"
}
}
}
这里查询status
字段精确为“active”的文档。如果status
是一个未分词的字段,如布尔值或特定编码值,term查询能准确找到匹配项。
(二)聚合查询
- 分组(terms聚合)
- 功能与应用场景:terms聚合用于对某个字段进行分组统计。例如,统计不同类别产品的数量。
- demo:
{
"size": 0,
"aggs": {
&