Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Azure搜索:返回每个方面的顶级文档_Azure_Search_Facet - Fatal编程技术网

Azure搜索:返回每个方面的顶级文档

Azure搜索:返回每个方面的顶级文档,azure,search,facet,Azure,Search,Facet,起始情况: 我创建了一个包含多个字段的索引,其中一个字段是可刻面的。 索引之后,我通过在这个特定字段上设置一个方面来执行搜索查询。返回的结果与期望的行为匹配,一切正常 不必返回与搜索词匹配的所有结果。因此,我将“$top”参数设置为50,只返回前50个结果。但是,如果第一个方面包含超过50个结果,那么所有其他方面都不会作为结果返回 我的问题是: 有没有办法为每个方面设置“$top”参数?或者以任何其他方式限制每个方面的结果数量? 例如,只返回每个方面的前5个文档 这个问题有什么解决办法吗?或者是

起始情况:

我创建了一个包含多个字段的索引,其中一个字段是可刻面的。 索引之后,我通过在这个特定字段上设置一个方面来执行搜索查询。返回的结果与期望的行为匹配,一切正常

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

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

这个问题有什么解决办法吗?或者是否有一种方法来实现预期的行为

希望有人能帮忙

提前谢谢

当然, 你可以做: Facet:“foo”、sort:value(或count)、count:5(或任何您想要的值)

对于facet查询,“count”是您想要获取的项目数,通过将其与sort相结合,您可以得到您的解决方案


首先,感谢您的回答。但这并没有解决我的问题。“Facet:“foo”,count:5“只返回按任何排序的五个“排名最高”的Facet。但是我想得到所有方面的结果,每个方面都应该包括这个特定方面的前五个结果。我不想限制返回的方面的数量,我想限制每个方面的结果文档的数量。希望它现在比唯一的方法更容易理解(至少现在是这样)是有多个查询。最初可以发送一个查询,该查询请求0个结果,但仅请求facet,然后从接收到的数据发送后续查询。这里是我试图提供一个更好的例子。。。如果这是一个SQL查询,那么您的facet将是位于WHERE上的GROUP BY,位于与您的结果不同的段中。从那里你唯一能做的就是根据所说的分段发送更多的请求。我也有同样的想法,遗憾的是,由于性能问题,这不是一个选项。不管怎样,你都应该试一试。我们在最近的一个项目中遇到了类似的情况,我们最终对每个方面进行了单独的查询,以模拟Solr的排除过滤器[/link]特性。在对搜索参数进行了相当多的研究之后,Azure search的性能确实“交付”,而且性能不是问题。如果您在Azure搜索计划中包含一些次要的并行性,并有适当的定价层,我坚信性能不会成为问题。