文档
查询规则

查询规则

查询规则是一项强大的功能,允许您自定义搜索体验的行为。它们是一组应用于搜索结果的条件和相应操作。它们按照在仪表板中定义的顺序应用。

查询规则在 search_settings 配置下的 query_rules 中定义。 query_rules 配置是一个查询规则对象的数组。每个查询规则对象都具有以下属性

  • id:字符串。必填。查询规则的 ID。用于识别查询规则。
  • conditions:一个 条件 数组,定义必须满足的条件才能应用查询规则。
  • actions:一个 操作,定义应用查询规则时要采取的操作。

下面是一个查询规则的示例,当查询以“star”开头时,该规则会将文档“tt0111161”固定到搜索结果的顶部。

{
  "search_settings": {
    "query_rules": [
      {
        "id": "1",
        "conditions": [
          [
            {
              "context": "query",
              "match_type": "prefix",
              "value": "star"
            }
          ]
        ],
        "actions": [
          {
            "action": "PinnedResult",
            "documentIds": ["tt0111161"]
          }
        ]
      }
    ]
  }
}

需要注意的是,查询规则按照在配置中定义的顺序应用。这意味着,如果您有两个查询规则都匹配某个查询,则第一个查询规则将首先应用,第二个查询规则将随后应用。如果您希望应用一个将覆盖另一个查询规则的查询规则,这将非常有用。

查询规则条件

条件用于定义必须满足的条件才能应用查询规则。

Searchkit 支持以下条件

下面是一个包含两个 **OR** 条件的示例

  • 第一个 **OR** 条件有两个 **AND** 条件。 contextquery 条件都必须满足。
  • 第二个 **OR** 条件有一个 **AND** 条件。 context 条件必须满足。

两个 **OR** 条件中的任何一个都必须满足才能应用查询规则操作。

{
  "search_settings": {
    "query_rules": [
      {
        "id": "1",
        "conditions": [
          [
            {
              "context": "query",
              "match_type": "prefix",
              "value": "star"
            },
            {
              "context": "context",
              "value": "test"
            }
          ],
          [
            {
              "context": "context",
              "value": "ecommerce"
            }
          ]
          ]
        ],
        "actions": []
      }
    ]
  }
}

查询规则操作

操作用于定义应用查询规则时要采取的操作。操作在查询规则对象的 actions 属性中定义。 actions 属性是一个操作数组。Searchkit 支持以下操作

调试查询规则

如果您在查询规则方面遇到问题,可以通过 appliedRules 在搜索响应中找到哪些查询规则已应用到您的搜索请求。 appliedRules 属性是一个已应用到搜索请求的查询规则 ID 数组。如果搜索请求未应用任何查询规则,则 appliedRules 属性将为空。


Apache 2.0 2024 © Joseph McElroy。
需要帮助?加入Discord