我需要使用机器学习算法来对查询结果进行排序/排序 . 我们的查询在elasticsearch上运行 . 为此,我们需要组合来自文档本身的数据,来自解释部分(尽管不应该返回解释)和外部来源 .
这是非常繁重的计算,所以我不想在所有文档上运行排名算法,但只在前1000名上运行,并返回我的前100名 .
创建评分插件将在所有文档上运行;我没有看到任何为重新安装阶段创建插件的选项 . 所以,似乎我必须创建一个排序插件 .
我的问题是 - 在分拣阶段有多少文件正在运行?有没有办法控制它(如rescore中的window_size)?如果我有分页会发生什么 - 我的排序是否再次运行?是否可以将1000个文档与解释部分一起放入排序阶段,只返回100而没有解释?
谢谢!
1 回答
使用rescoring结合你的评分插件,重新计算algo仅在前N个结果上运行
所有与您的查询匹配的内容,如果您要求提供N个文档,则每个分片都会发送前N个,然后将它们合并在一起
是的,排序再次运行,如果您要求100000到100010的文档,则更糟糕,每个分片100010个文档的排序