我正在寻找从我的查询结果中获取一些随机样本的方法。 问题是它应该保留顺序,它应该可以用同一种子重复。 我尝试使用自定义过滤器,但它无法在一次调用中访问所有返回的文档。 在最糟糕的情况下,我将调用查询获取ID,从其数组中取样并再次使用额外的过滤器调用查询(问题是我需要在几个不同的地方,并且我有一个常见的方法来构建过滤器)
你有更好的主意吗?
此致
答案 0 :(得分:1)
RandomSortField就是这么做的,所以如果你需要保持Lucene级别,你可以查看源代码,看看在Lucene之上捆绑所有需要的java代码是多么困难
答案 1 :(得分:0)
最后,我通过获取所有文档,创建id字段集合,对该数组进行采样以及将采样结果添加到主Lucene查询的过滤器来解决问题。并再次搜索结果。