我问的原因 - 当我们搜索1-3百万以上的数据项(~50GB)时,我们正在使用无法返回正确数字的Algolia。 Algolia技术公司证实了这一点 - >他们在检索时间上进行了优化,因此更愿意以不正确的计数返回更少的数据但速度更快。他们主要专注于FTS。
只想确认Azure搜索的方法是什么 - 我们可以依赖它吗?或者我们应该自己制作分面?
主要说的是案例很简单 - 电子商务应用程序(互联网商店)有大量商品(SKU)可供销售,我们希望通过Facets过滤提供搜索功能。
答案 0 :(得分:2)
Azure Search不保证准确的构面计数,除非您请求的计数大于或等于正面的字段中唯一值的数量。例如,如果您的category
字段包含10个唯一值,则可能会返回不准确的计数:
GET /indexes/myindex/docs?facet=category,count:3&api-version=2016-09-01
虽然这会返回准确的计数:
GET /indexes/myindex/docs?facet=category,count:10&api-version=2016-09-01
但是,对于具有许多唯一值的字段,使用count
的较大值可能会对性能产生负面影响。
这来自official docs on Azure Search facets:
请注意,如果count参数小于唯一术语的数量,则结果可能不准确。这是由于分片查询在分片中分布的方式。增加计数通常会增加术语计数的准确性,但会带来性能成本。
还有一个关于方面计数准确度的discussion on the MSDN forums,您可能会感兴趣。