我们需要让特定的搜索关键字提供特定的结果。有没有办法在Algolia控制台内执行此操作?
答案 0 :(得分:2)
没有开箱即用的功能,但您可以使用2种不同的解决方案重现此类行为:
您可以为对象添加新的keyword
属性,并列出要用于每个对象的所有关键字。
with attributesToIndex:
将keyword
属性置于attributesToIndex
之上将使其与其他属性匹配。
或使用attributesForFaceting:
将keyword
属性放在attributesForFaceting
中可让您对其进行过滤。对于每个单独的搜索,您可以执行额外的查询,将查询字符串作为过滤器:index.search('' /* empty query string: match all */, { facetFilters: "keyword:THE_USER_QUERY_STRING" })
并检查是否匹配时使用结果,否则使用常规搜索查询。
使用其他索引,您可以为每个要处理的搜索关键字推送1条记录。
此类索引的记录如下所示:
{
"keyword": "mykeyword",
"object": {
// the object you want to retrieve
}
}
仅将attributesToIndex
配置为keyword
。您可能还希望将该额外索引的queryType
配置为prefixNone
,以便原生前缀搜索不会触发。 (相反,你也可以在这里使用facetFilters
方法。)
对于每次搜索,您将查询2个索引:原始索引和此额外索引。如果额外的一个匹配,您可以在搜索结果中注入对象。