2017-05-31 59 views
0

开始的状态:Azure搜索:返回每个方面的顶部文档

我创建了一个带有多个字段的索引,其中的一个字段是可见的。 通过在此特定字段上设置方面对索引我执行的搜索查询进行索引后。返回的结果匹配所需的行为,一切工作正常。

不一定要返回与搜索词相匹配的所有结果。因此,我将“$ top”参数设置为50,只返回前50个结果。但是,如果第一个方面包含超过50个结果,则其他所有方面都不会因此而返回。

我的问题是: 有没有办法为每个方面设置“$ top”参数?或者有其他方法来限制每个方面的结果数量? 例如,只返回每个方面的前5个文档。

有没有解决这个问题的方法?或者有没有一种方法来达到理想的行为?

希望有人可以提供帮助。

在此先感谢!

回答

0

当然, 你可以这样做: 一面:“富”,排序:值(或计数),计数:5(或任何你想要的值)

为了您的面查询“数”是多少你想获得项目,并通过与排序相结合,你可以得到你的解决方案

You will find more detailed information here

+0

首先,感谢您的回答。 但它并没有解决我的问题。 “facet:”foo“,count:5”只返回按任意顺序排列的五个“最高排名”方面。 但是我想要得到所有方面的结果,这些方面中的每一个应该包含这个特定方面的前五个结果。 我不想限制返回的构面的数量,我想限制每个构面的结果文档的数量。 希望它现在更容易理解 – maxhoefler

+0

比唯一的方法是做到这一点(至少现在)是有多个查询。 您最初可以发送请求0结果的查询,但仅查询方面,并根据您收到的数据发送后续查询。 这里是我试图提供一个更好的例子... 如果这是一个SQL查询,你的方面将是你的WHERE的GROUP BY,在你的结果的一个单独的段。你可以从那里做的唯一的事情是发送更多的请求基于上述分段 –

+0

我有同样的想法,可惜它不是一个选项,由于性能问题。 – maxhoefler