Elasticsearch中的score脚本插件



我实现了一个评分插件来跳过搜索结果中的一些文档,而实际的业务是跳过用户的阅读。插件地址https://github.com/yzlq99/ElasticsearchPlugin

问题:性能问题,当搜索出太多文档数据时,性能会很差。因为每个文档都会执行插件脚本

优化思路:优化的思路是是否控制分页执行脚本。例如,如果我每页取50个项目,那么只要我满足条件,并且没有得到跳过列表中的前50个项目时,我就会停止脚本并直接返回数据。(现在,无论是否分页,脚本都将在所有文档上执行,有什么方法可以控制它吗?(

您是否尝试过使用FilterScript而不是ScoreScript?它应该更适合您的用例。

我还创建了一个插件,它使用RoaringBitmap和Elasticsearch(使用FilterScript(,并且没有发现大列表的主要性能问题。(回购还包含一个基准博客文章的链接(。

回购:https://github.com/lsena/fastfilter-elasticsearch-plugin

我很快就会更新它,并进一步更新性能。

最新更新