在搜索数百万个项目时,Azure搜索是否在facet中返回正确的计数

时间:2017-04-12 20:57:26

标签: azure faceted-search azure-search

我问的原因 - 当我们搜索1-3百万以上的数据项(~50GB)时,我们正在使用无法返回正确数字的Algolia。 Algolia技术公司证实了这一点 - >他们在检索时间上进行了优化,因此更愿意以不正确的计数返回更少的数据但速度更快。他们主要专注于FTS。

只想确认Azure搜索的方法是什么 - 我们可以依赖它吗?或者我们应该自己制作分面?

主要说的是案例很简单 - 电子商务应用程序(互联网商店)有大量商品(SKU)可供销售,我们希望通过Facets过滤提供搜索功能。

1 个答案:

答案 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,您可能会感兴趣。