我有一个包含大约 3500 万份文档的索引。当用户使用搜索词和过滤器的任意组合发出查询时,我需要获取另一个字段上唯一值的计数。目的是回答“给定查询有多少唯一(字段 x)?”这个问题。
我很确定 Azure 搜索没有任何能力这样做,所以我想我会尝试做另一个查询,在那里我只选择我想要计算不同值的字段,但我认为这将是非常时间消费这么大的指数。我还觉得我最多只能跳过 100,000 条记录,如果查询返回的结果超过 100,000 条,我将无法执行此操作。
关于如何解决这个问题的任何想法?
谢谢!
我有一个包含大约 3500 万份文档的索引。当用户使用搜索词和过滤器的任意组合发出查询时,我需要获取另一个字段上唯一值的计数。目的是回答“给定查询有多少唯一(字段 x)?”这个问题。
我很确定 Azure 搜索没有任何能力这样做,所以我想我会尝试做另一个查询,在那里我只选择我想要计算不同值的字段,但我认为这将是非常时间消费这么大的指数。我还觉得我最多只能跳过 100,000 条记录,如果查询返回的结果超过 100,000 条,我将无法执行此操作。
关于如何解决这个问题的任何想法?
谢谢!
Azure 搜索目前不直接支持不同的值计数。为了在一个与$filter
_ _今天)。$count
$filter
$count
$filter
随时向Azure 搜索反馈论坛添加不同的计数,以帮助确定该功能的优先级。
原始答案
如果您想要每个唯一值的文档计数,您可以使用构面。例如,如果您要搜索 100 美元以下的鞋子,并且您想知道热门商品中每种颜色的鞋子数量,您可以这样做:
GET /indexes/products/docs?search=shoes&$filter=price+lt+100&facet=color&api-version=2015-02-28