首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用jest对elasticsearch结果排序

如何使用jest对elasticsearch结果排序
EN

Stack Overflow用户
提问于 2017-02-15 22:44:35
回答 1查看 1.9K关注 0票数 0

因此,我使用jest来练习elasticsearch 5.2有以下内容:

代码语言:javascript
复制
@Override
public List<Aptitude> findAllAptitudes() {
    SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
    searchSourceBuilder.query(QueryBuilders.matchAllQuery());

    Search search = new Search.Builder(searchSourceBuilder.toString()).addIndex(APTITUDE_INDEX_NAME).build();

    try {
        SearchResult result = JestClientUtils.getClient().execute(search);
        List<Hit<Aptitude, Void>> aptitudes = result.getHits(Aptitude.class);
        return aptitudes.stream().map(this::getAptitude).sorted(new Comparator<Aptitude>() {

            @Override
            public int compare(Aptitude o1, Aptitude o2) {
                return o1.getId().compareTo(o2.getId());
            }
        }).collect(Collectors.toList());
    } catch (IOException e) {
        e.printStackTrace();
        throw new RuntimeException(e);
    }
}

private Aptitude getAptitude(Hit<Aptitude, Void> hit) {
    return hit.source;
}

但是,我想按照ID (Long从智能分布)来获得结果,但无法完全弄清楚如何。谁能给我指明正确的方向吗?提前感谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-02-16 04:33:18

您不需要在Java中对结果进行排序,您可以简单地要求ES为您进行排序。您可以在下面添加第三行并删除所有代码。

代码语言:javascript
复制
SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
searchSourceBuilder.query(QueryBuilders.matchAllQuery());
searchSourceBuilder.sort("id", SortOrder.ASC);
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42261521

复制
相关文章

相似问题

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