代码拉取完成,页面将自动刷新
查询子句的行为有两种,过滤 和 查询. 在查询上下文中使用查询子句来处理影响匹配文档得分的条件(例如,文档匹配的程度),并在过滤上下文中使用所有其他查询子句。
在查询上下文中使用的查询子句可以回答这样一个问题:“这个文档与这个查询子句的匹配程度如何?”除了决定文档是否匹配外,查询子句还计算一个_score,表示文档相对于其他文档的匹配程度。 查询上下文在将查询子句传递给查询参数(例如搜索API中的查询参数)时生效。
在过滤器上下文中,查询子句回答“此文档是否匹配此查询子句?”答案是简单的“是”或“不是”——不计算分数。过滤上下文主要用于过滤结构化数据,例如。
Elasticsearch会自动缓存常用的筛选器,以提高性能。 只要将查询子句传递给筛选器参数,例如bool查询中的Filter或must_not参数、constant_score查询中的Filter参数或筛选器聚合,筛选器上下文就会生效。
下面是在搜索API的查询和过滤上下文中使用的查询子句的示例。该查询将匹配满足以下所有条件的文档:
GET /_search
{
"query": {
"bool": {
"must": [
{ "match": { "title": "Search" }},
{ "match": { "content": "Elasticsearch" }}
],
"filter": [
{ "term": { "status": "published" }},
{ "range": { "publish_date": { "gte": "2015-01-01" }}}
]
}
}
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。