Algolia 标签与 Facets 用例
Algolia Tags vs Facets Use Cases
Algolia 的新手,在解读标签与构面的区别(建议使用)时遇到了一些麻烦——它们在功能上似乎是等价的。
Algolia 文档给出了一个带有用户 ID 的标签示例——例如"user_1234",然后可用于过滤。
然而,这在功能上似乎等同于在您的 JSON:
中简单地使用它
"user": "1234"
然后将 "user" 声明为分面字段。
有什么区别/目的?为什么既有标签又有构面?
您确实是正确的,两者都可以为您提供相同的过滤功能。
主要区别在于在索引时计算的方面计数,这需要时间。
这就是为什么您现在可以在 attributesForFaceting
设置中为属性添加 onlyFilter
修饰符,如下所示:
{
attributesForFaceting: [
'onlyFilter(user)'
]
}
这将告诉引擎 user
属性应被视为标记或标记列表(此语法目前未记录,但应该很快就会记录)。
相同的逻辑可以应用于数字属性。默认情况下,Algolia 引擎会为所有索引的数字创建数据结构,以便快速回答 nb_views>10000
.
等查询
这也是计算量很大的,这就是为什么你可以在 numericAttributesToIndex.
中添加 equalOnly
修饰符
Algolia 的新手,在解读标签与构面的区别(建议使用)时遇到了一些麻烦——它们在功能上似乎是等价的。
Algolia 文档给出了一个带有用户 ID 的标签示例——例如"user_1234",然后可用于过滤。
然而,这在功能上似乎等同于在您的 JSON:
中简单地使用它"user": "1234"
然后将 "user" 声明为分面字段。
有什么区别/目的?为什么既有标签又有构面?
您确实是正确的,两者都可以为您提供相同的过滤功能。
主要区别在于在索引时计算的方面计数,这需要时间。
这就是为什么您现在可以在 attributesForFaceting
设置中为属性添加 onlyFilter
修饰符,如下所示:
{
attributesForFaceting: [
'onlyFilter(user)'
]
}
这将告诉引擎 user
属性应被视为标记或标记列表(此语法目前未记录,但应该很快就会记录)。
相同的逻辑可以应用于数字属性。默认情况下,Algolia 引擎会为所有索引的数字创建数据结构,以便快速回答 nb_views>10000
.
等查询
这也是计算量很大的,这就是为什么你可以在 numericAttributesToIndex.
equalOnly
修饰符