13 基本查询与过滤
在上一篇教程中,我们探讨了索引与文档操作之检索文档的基础知识。这次,我们将深入了解 Elasticsearch
的基本查询与过滤功能。这些功能是数据检索的基础,在任何复杂查询的构建中都是不可或缺的。
基本查询理解
在 Elasticsearch
中,基本查询主要包括:
- **匹配查询 (
match
)**:用于全文检索,支持分词。 - **字段匹配查询 (
term
)**:用于精确匹配,不支持分词。 - **范围查询 (
range
)**:用于检索在某个范围内的数值或日期。 - 布尔查询 (
bool
): 用于组合多个查询条件。 - 过滤器 (
filter
): 用于根据特定条件过滤结果,通常与布尔查询结合使用。
这些查询可以单独使用,也可以结合使用,以满足不同的需求。
1. 匹配查询
假设我们有一个文档索引名为 articles
,其中包含以下文档:
1 | { |
我们想要查找包含 Elasticsearch
的文档,使用匹配查询可以如下执行:
1 | GET /articles/_search |
2. 字段匹配查询
当我们需要查找完全匹配某个字段的内容时,可以使用过滤查询。例如,假设我们要检索标题为 Elasticsearch Basics
的文章:
1 | GET /articles/_search |
注意,term
查询是精确的,不会对字符串进行分词处理。
3. 范围查询
在处理数值或日期数据时,范围查询非常有用。比如,我们想查找发布时间在 2022 年到 2023 年之间的所有文章:
1 | GET /articles/_search |
4. 布尔查询
布尔查询用于组合复杂条件。假设我们想查找同时包含 Elasticsearch
和 search
的文档:
1 | GET /articles/_search |
5. 过滤器
过滤器与查询类似,但它不计算相关性评分,通常用于提高查询性能。比如,我们想要检索所有与 Elasticsearch
相关的文档,同时限制 publish_date
在2022年之后的文档:
1 | GET /articles/_search |
小结
在本节中,我们探讨了 Elasticsearch
的基本查询功能,包括匹配查询、字段匹配查询、范围查询、布尔查询和过滤器的使用。这些基本查询的组合和灵活应用是构建复杂查询的基础。
下一篇,我们将讨论 Elasticsearch
的复合查询,介绍如何将多个查询组合在一起,形成更复杂的检索机制。通过这些内容的深入了解,希望大家能够在使用 Elasticsearch
时更得心应手。
13 基本查询与过滤