Elasticsearch Query DSL概述与查询、过滤上下文
在Elasticsearch中,Query DSL(Domain Specific Language)是一种特定领域的语言,用于构建查询。查询可以是查询(Query)或者过滤器(Filter)。查询会影响文档的相关性排名,而过滤器则不会。
以下是一个简单的Elasticsearch查询DSL示例,使用查询和过滤器上下文进行查询:
GET /_search
{
"query": { // 查询上下文
"bool": { // 复合查询类型
"must": [ // 必须匹配的查询条件
{ "match": { "title": "Search" } }
],
"filter": [ // 过滤器条件,不影响相关性排名
{ "term": { "status": "published" } }
]
}
}
}
在这个例子中,我们执行了一个布尔查询,它包含一个必须匹配的match
查询条件和一个过滤器条件term
。这个请求会搜索标题中包含"Search"的文档,并且状态为"published"的文档。由于status
字段在这里用作过滤器,文档的相关性排名不会受到影响,但是只有匹配这个状态的文档会被检索出来。
评论已关闭