【问题标题】:Does Azure search return correct counts in facets when searching over millions of items搜索数百万个项目时,Azure 搜索是否返回正确的构面计数
【发布时间】:2017-04-13 07:40:06
【问题描述】:

我问的原因 - 当我们搜索超过 1-300 万个数据项 (~50GB) 时,我们使用的 Algolia 无法为构面返回正确的数字。 Algolia 技术人员证实了这一点 -> 他们正在优化检索时间,因此更愿意返回更少但计数不正确的数据,但速度很快。他们主要关注 FTS。

只是想确认 Azure 搜索的方法是什么 - 我们可以依赖它吗?还是我们应该自己创造刻面?

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

【问题讨论】:

    标签: azure faceted-search azure-cognitive-search


    【解决方案1】:

    Azure 搜索不保证准确的分面计数,除非您请求的计数大于或等于分面字段中唯一值的数量。例如,如果您有一个具有 10 个唯一值的 category 字段,则可能会返回不准确的计数:

    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,您可能会觉得有趣。

    【讨论】:

    • 谢谢!这是我所期待的答案。将尝试评估我们这边的 Az Search,以找出大量数据的性能滞后。
    • 只是好奇——为什么计数的准确性对您的方案如此重要?在很短的时间内计算大量数据的准确计数是一个难题,否则每个人都会这样做。 :-) 无论您最终选择哪种搜索解决方案,您都可能需要权衡准确性以换取性能。
    • Bruce Johnston - 在商店网站中,您希望向最终用户显示正确的计数,例如“T 恤 125;帽子 - 150”,这样当您选择其中一个(帽子)时,您最终会得到页面上总共有 150 顶帽子,而不是 350 或任何其他数字。这只会让用户感到困惑。
    猜你喜欢
    • 2018-05-11
    • 2021-03-15
    • 1970-01-01
    • 2018-05-10
    • 2014-09-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多