当前位置:  开发笔记 > 编程语言 > 正文

匹配所有查询不返回所有文档

如何解决《匹配所有查询不返回所有文档》经验,为你挑选了1个好方法。

我想阅读我的es索引中的所有文档.所以我使用以下功能:

public List> getAllDocs(){
        System.out.println(indexName+typeName);
        SearchResponse response = client.prepareSearch(indexName)
                .setTypes(typeName)
                .setQuery(QueryBuilders.matchAllQuery())
                .execute()
                .actionGet();

        for(SearchHit hit : response.getHits()){
            //System.out.println("id:"+hit.getId()+" row:"+hit.getSource());
            esData.add(hit.getSource());
        }
        return esData;
    }

但是这个函数只返回10个文件.如果我再添加一个参数, .setSize(100)那么它将返回100个文档.如何在没有.setSize(100)参数的情况下获取索引中的所有文档?



1> Jettro Coenr..:

这不是一个有效的方法,可能是因为这可能是一个真正的性能问题.如果您需要所有记录,则至少有两种方法可以执行此操作:

使用分页:大小和来自

使用滚动API:http: //www.elasticsearch.org/guide/en/elasticsearch/reference/current/search-request-scroll.html

另一种方法可能是设置更高的大小,首先执行计数查询以获取所有项的计数,而不是将大小设置为此值.但我绝不会在生产中使用这种解决方案.

推荐阅读
贾志军
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有