Algolia 标签与 Facets 用例

Algolia Tags vs Facets Use Cases

A​​lgolia 的新手,在解读标签与构面的区别(建议使用)时遇到了一些麻烦——它们在功能上似乎是等价的。

A​​lgolia 文档给出了一个带有用户 ID 的标签示例——例如"user_1234",然后可用于过滤。

然而,这在功能上似乎等同于在您的 JSON:

中简单地使用它

"user": "1234"

然后将 "user" 声明为分面字段。

有什么区别/目的?为什么既有标签又有构面?

您确实是正确的,两者都可以为您提供相同的过滤功能。
主要区别在于在索引时计算的方面计数,这需要时间。

这就是为什么您现在可以在 attributesForFaceting 设置中为属性添加 onlyFilter 修饰符,如下所示:

{
  attributesForFaceting: [
    'onlyFilter(user)'
  ]
}

这将告诉引擎 user 属性应被视为标记或标记列表(此语法目前未记录,但应该很快就会记录)。

相同的逻辑可以应用于数字属性。默认情况下,Algolia 引擎会为所有索引的数字创建数据结构,以便快速回答 nb_views>10000.
等查询 这也是计算量很大的,这就是为什么你可以在 numericAttributesToIndex.

中添加 equalOnly 修饰符