我正在寻找一个实际返回特定查询结果的前10%的设置。在结果之后,我们还想对子集进行排序。
有一种简单的方法吗?
任何人都可以为此提供一个简单的例子。 我正在考虑将结果分数在0和1.0之间进行缩放,并且基本上将min_score分成0.9。
我正在尝试创建function_score查询但是对于像这样的简单要求来说这些看起来有点复杂,而且我不确定排序会如何影响结果,因为我希望排序函数始终在10%以上工作相关文章当然。
谢谢, 彼得
答案 0 :(得分:1)
由于您希望以总体文档计数的百分比来切片响应,无论如何您都需要知道。使用from / size
参数将在查询时切断所需的金额。
假设这一点,似乎实现目标的最简单方法是进行2次查询:
search_type=count
以获取整体文档数。{"from": 0, "size": count/10}
。谈论调整得分。对我来说,这似乎是个坏主意,因为获得具有相同分数的多个文档是相当普遍的情况。因此,按min_score
切割数据集可能会导致数据偏斜。