首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >按分数排序时在Elasticsearch中搜索(分页)

问按分数排序时在Elasticsearch中搜索(分页)
EN

Stack Overflow用户
提问于 2019-12-30 01:53:00
回答 1查看 3.6K关注 0票数 1

Search after in elasticsearch必须在计数和顺序上与其排序参数匹配。所以我想知道如何从之前的结果(示例页面1)中获得分数,以便在搜索下一页后使用它。在以前的搜索中使用最后一个文档的分数时,我遇到了一个问题。分数是1.0,由于所有文档的分数都是1.0,因此下一页的结果为null (空)。

这实际上是有意义的,因为我要求elasticsearch查找排名(分数)低于1.0的结果(分数为0),那么我应该使用哪个分数来获取下一个页面。

注意:我先按分数排序,然后再按TieBreakerID排序,因此一种可能的解决方案是对分数使用较高的值(比如1000)。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-10-20 09:51:57

作为explained by an Elastic team member,您正在做的事情听起来应该是可行的。它适用于我(在ES7.7中),即使在使用文档ID (复制到另一个索引字段)作为平局时也是如此。确实,在分页时索引其他文档会使您的分数略有不稳定,但不太可能给最终用户带来严重的问题。如果您需要它对于批处理作业是可靠的,那么Scroll API是更好的选择。

代码语言:javascript
复制
{
    "query": {
        ...
    },
    "search_after": [
        12.276552,
        14173
    ],
    "sort": [
        { "_score": "desc" },
        { "id": "asc" }
    ]
}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59521891

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档