ElasticSearch reindex by JAVA API
2015-09-09 14:41
525 查看
package elasticsearch.importdata; import org.elasticsearch.action.search.SearchResponse; import org.elasticsearch.action.search.SearchType; import org.elasticsearch.client.Client; import org.elasticsearch.client.transport.TransportClient; import org.elasticsearch.common.settings.ImmutableSettings; import org.elasticsearch.common.settings.Settings; import org.elasticsearch.common.transport.InetSocketTransportAddress; import org.elasticsearch.common.unit.TimeValue; import org.elasticsearch.index.query.QueryBuilder; import org.elasticsearch.index.query.QueryBuilders; import org.elasticsearch.search.SearchHit; public class ESBulkDataApi { public static void main(String[] args) { // establish the client Settings settings = ImmutableSettings.settingsBuilder() .put("cluster.name", "genbank").build(); @SuppressWarnings("resource") Client client = new TransportClient(settings) .addTransportAddress(new InetSocketTransportAddress( "10.0.26.1", 9300)); QueryBuilder queryBuilder = QueryBuilders.boolQuery().must( QueryBuilders.matchAllQuery()); SearchResponse searchResponse = client.prepareSearch("liu") .setTypes("seqs").setSearchType(SearchType.SCAN) .setScroll(new TimeValue(60000)).setQuery(queryBuilder) .setSize(100).execute().actionGet(); //scroll to get the data while (true) { searchResponse = client .prepareSearchScroll(searchResponse.getScrollId()) .setScroll(new TimeValue(600000)).execute().actionGet(); for (SearchHit hit : searchResponse.getHits().getHits()) { // copy the data to the new index client.prepareIndex("my_index_v1", "seqs", hit.getId()) .setSource(hit.getSourceAsString()).execute().actionGet(); } // when there is no data,break the loop if (searchResponse.getHits().getHits().length == 0) { break; } } } }
相关文章推荐
- Java多线程的那些事儿
- eclipse classpath
- java 回调(通俗易懂的解析)
- java.lang.UnsupportedOperationException
- Java 实现导出excel表 POI
- Java中ArrayList和LinkedList区别
- spring boot 集成框架事例
- java--xml
- Spring AOP和Servlet使用问题
- Java synchronized详解 二
- Java synchronized详解 一
- java创建多线程的三种方式
- 源码:从控制台接收数据
- eclipse 安装svn插件
- Eclipse:Cannot complete the install because of a conflicting dependency.问题解决
- java开源资源
- java游戏框架那点事(转)
- 源码:打印错误信息和调试信息
- EL&struts2标签 读取map,list集合
- java保留两位小数【转】