规则查询

编辑

rule_query 在 8.15.0 中已重命名为 rule。使用 rule_queryruleset_id 的旧语法已弃用,将在未来版本中删除,因此强烈建议将现有的规则查询迁移到新的 API 结构。

在返回结果之前,将 查询规则 应用于查询。查询规则可用于根据匹配的定义规则以 固定查询 的方式提升文档,或识别要从上下文结果集中排除的特定文档。如果未定义任何匹配的查询规则,则返回查询的“自然”匹配。所有匹配规则都按其在查询规则集中出现的顺序应用。如果同一文档同时匹配 exclude 规则和 pinned 规则,则该文档将被排除。

要使用规则查询,您首先需要一组已定义的查询规则。使用 查询规则管理 API 创建和管理查询规则。有关更多信息和示例,请参阅 使用查询规则搜索

示例请求

编辑
resp = client.search(
    query={
        "rule": {
            "match_criteria": {
                "user_query": "pugs"
            },
            "ruleset_ids": [
                "my-ruleset"
            ],
            "organic": {
                "match": {
                    "description": "puggles"
                }
            }
        }
    },
)
print(resp)
const response = await client.search({
  query: {
    rule: {
      match_criteria: {
        user_query: "pugs",
      },
      ruleset_ids: ["my-ruleset"],
      organic: {
        match: {
          description: "puggles",
        },
      },
    },
  },
});
console.log(response);
GET /_search
{
  "query": {
    "rule": {
      "match_criteria": {
        "user_query": "pugs"
      },
      "ruleset_ids": ["my-ruleset"],
      "organic": {
        "match": {
          "description": "puggles"
        }
      }
    }
  }
}

rule_query 的顶级参数

编辑
ruleset_ids
(必需,数组)一个或多个唯一 查询规则集 ID 的数组,其中包含基于查询的规则以匹配并根据需要应用。规则集及其关联规则将按照其在查询和规则集中指定的顺序进行评估。要指定的规则集的最大数量为 10。
match_criteria
(必需,对象)定义要应用于给定查询规则集中规则的匹配条件。匹配条件应与规则的 criteria.metadata 字段中定义的键匹配。
organic
(必需,对象)用于返回结果的任何 查询 选择,这些结果可能会因匹配的查询规则而修改。如果未匹配和应用任何查询规则,则将执行此查询而无需修改。