使用 elasticsearchTemplate 从 ElasticSearch 获取所有文档
Posted
技术标签:
【中文标题】使用 elasticsearchTemplate 从 ElasticSearch 获取所有文档【英文标题】:Get all documents from ElasticSearch using elasticsearchTemplate 【发布时间】:2016-02-24 12:59:07 【问题描述】:我的 elasticsearch 上有很多文档。我正在使用 elasticsearchTemplate.queryForList(SearchQuery, class) 根据我的查询获取文档。此查询始终返回 10 个文档。 elasticsearch 是否提供任何 api 来返回所有匹配查询的文档?
【问题讨论】:
【参考方案1】:您需要在您的searchQuery
中添加Page Request
。
NativeSearchQueryBuilder builder = new NativeSearchQueryBuilder().withQuery(matchAllQuery()).withPageable(new PageRequest(0, repository.count() as int))
SearchQuery query = builder.build()
Repository.count()
将给出索引中的文档数。
希望这会有所帮助。
【讨论】:
这里的 repository.count() 是什么? 将为您提供该存储库索引中的文档数 答案中写的代码是使用spring data弹性搜索我们在使用spring data时为索引创建存储库 对于像我这样在 2018 年遇到此问题的人,new PageRequest(0, repository.count()
已弃用,您可以改用 PageRequest.of(0, repository.count()
。
@Verv 您能否详细说明您的解决方案。 ElasticSearchTemplate 不接受 pageRequest 作为参数。以上是关于使用 elasticsearchTemplate 从 ElasticSearch 获取所有文档的主要内容,如果未能解决你的问题,请参考以下文章
从 Spring-Boot 测试中排除 elasticsearchTemplate
springBoot集成es查询,使用ElasticsearchTemplate执行滚动查询
Spring Boot 自动配置覆盖自定义(elasticsearchTemplate)配置
如何使用Spring Data ElasticsearchTemplate连接到Amazon Elasticsearch Service?