在Elasticsearch中找一个复制索引的接口真难。现在官方唯一推荐的方法是使用游标获得被复制索引的所有document,然后使用bulkIndex新建立一个索引。
这个接口也很奇怪,第一次search竟然不返回数据。
import org.elasticsearch.action.search.SearchResponse; import org.elasticsearch.action.search.SearchType; import org.elasticsearch.client.Client; import org.elasticsearch.common.unit.TimeValue; import org.elasticsearch.search.SearchHit; import donlian.es.ESUtils; /** * 使用scroll方法实现复制索引 * @author donlianli@126.com */ public class ScrollTest { public static void main(String[] args) { Client esClient = ESUtils.getClient(); SearchResponse searchResponse = esClient.prepareSearch(ESUtils.getIndexName()) //加上这个据说可以提高性能,但第一次却不返回结果 .setSearchType(SearchType.SCAN) //实际返回的数量为5*index的主分片格式 .setSize(5) //这个游标维持多长时间 .setScroll(TimeValue.timeValueMinutes(8)) .execute().actionGet(); //第一次查询,只返回数量和一个scrollId System.out.println(searchResponse.getHits().getTotalHits()); System.out.println(searchResponse.getHits().hits().length); //第一次运行没有结果 for (SearchHit hit : searchResponse.getHits()) { System.out.println(hit.getSourceAsString()); } System.out.println("------------------------------"); //使用上次的scrollId继续访问 searchResponse = esClient.prepareSearchScroll(searchResponse.getScrollId()) .setScroll(TimeValue.timeValueMinutes(8)) .execute().actionGet(); System.out.println(searchResponse.getHits().getTotalHits()); System.out.println(searchResponse.getHits().hits().length); for (SearchHit hit : searchResponse.getHits()) { System.out.println(hit.getSourceAsString()); } } }
对这类话题感兴趣?欢迎发送邮件至donlianli@126.com
关于我:邯郸人,擅长Java,Javascript,Extjs,oracle sql。
更多我之前的文章,可以访问 我的空间
相关推荐
ElasticSearch数据导出 elasticsearch单文档数据导出 支持自定义查询 导出数据Json文件
springboot整合elasticsearch7,进行数据同步。elasticsearch相关度查询、排序。高亮显示;自动补全等功能。代码仅供参考,代码中有具体的注释,可以根据代码及注释内容,对自己项目架构及业务进行修改、整合。
ElasticSearch官方测试数据
Spring Boot elasticsearch7.6.2基础操作:创建索引、新增数据、查询数据
ES 官方示例数据
Linux环境下使用sqlplus工具将oracle中的数据导入到elasticsearch中。只需要在es_bulk_tool.properties配置sql即可实现数据的批量导入。在elasticsearch6中测试通过。shell脚本需要使用sqlplus。
消费kafka数据,然后批量导入到Elasticsearch,本例子使用的kafka版本0.10,es版本是6.4,使用bulk方式批量导入到es中,也可以一条一条的导入,不过比较慢。 <groupId>org.elasticsearch <artifactId>elastic...
今天小编就为大家分享一篇关于JAVA使用Elasticsearch查询in和not in的实现方式,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
elasticsearch python 查询的两种方法,具体内容如下所述: from elasticsearch import Elasticsearch es = Elasticsearch res1 = es.search(index=2018-07-31, body={query: {match_all: {}}}) print(es1) {'_...
ElasticSearch查询学习;ElasticSearch查询学习;ElasticSearch查询学习;ElasticSearch查询学习;ElasticSearch查询学习;ElasticSearch查询学习;
因为你不知道将Hive的数据导入到了ElasticSearch后,数据量是否准确,所以需要钉钉报警校验ElasticSearch和Hive数据仓库内的数据质量,注意,这个项目打包后,最好另起一个进程调用,并且开始时间为文章1或者2最大...
Elasticsearch 是一个实时的分布式搜索分析引擎, 它能让你以一个之前从未有过的速度和规模,去探索你的数据。 它被用作全文检索、结构化搜索、分析以及这三个功能的组合: Wikipedia 使用 Elasticsearch 提供带有...
好记性不如烂笔头哦~,ElasticSearch,简称es,es是一个开源的高拓展的分布式全文搜索引擎它可以近乎实时的存储、检索数据;本身拓展性很好,可以拓展到上百台服务器,处理PB级别的数据。es也是用Java开发并使用...
Elasticsearch 为所有类型的数据提供近乎实时的搜索和分析。无论您拥有结构化或非结构化文本、数字数据还是地理空间数据,Elasticsearch 都能以支持快速搜索的方式高效地存储和索引它。您可以超越简单的数据检索和...
2.(后端技术篇java)Postgres库数据同步到ElasticSearch 3.(后端技术篇java)ElasticSearch实现正向地址匹配服务 4.(后端技术篇java)ElasticSearch实现反向地址匹配服务(点周边查询服务) 5.(后端技术篇java)...
elastic数据导出工具,可以直接将es中的数据导入存储到Mysql,也可以指定存储到本地文件夹中,可以选择以json格式或者sql语句的形式
ElasticSearch测试数据
ElasticSearch查询term,terms,match,id查询 ElasticSearch查询refix,fuzzy,wildcard,range,regexp查询 ElasticSearch查询scroll,delete-by-query,bool,boosting,filter,highlight查询 ElasticSearch查询...
该工具支持将arcgis的shp数据导入到ES中,支持多面数据或带洞的面数据
真实开发环境的es设计开发文档,可以参考试试,版本比较老了