查询规则
查询规则是一项强大的功能,允许您自定义搜索体验的行为。它们是一组应用于搜索结果的条件和相应操作。它们按照在仪表板中定义的顺序应用。
查询规则在 search_settings
配置下的 query_rules
中定义。 query_rules
配置是一个查询规则对象的数组。每个查询规则对象都具有以下属性
下面是一个查询规则的示例,当查询以“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** 条件。
context
和query
条件都必须满足。 - 第二个 **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
属性将为空。