elasticsearch批量建索引出错

问题描述

用elasticsearch批量创建索引时候会报以下错误[0]:index[myshop_portal],type[type-product],id[1],message[UnavailableShardsException[[myshop_portal][2]Primaryshardisnotactiveorisn'tassignedisaknownnode.Timeout:[1m],request:org.elasticsearch.action.bulk.BulkShardRequest@47359fdc]][2]:index[myshop_portal],type[type-product],id[3],message[UnavailableShardsException[[myshop_portal][4]Primaryshardisnotactiveorisn'tassignedisaknownnode.Timeout:[1m],request:org.elasticsearch.action.bulk.BulkShardRequest@2e0a2298]][3]:index[myshop_portal],type[type-product],id[4],message[UnavailableShardsException[[myshop_portal][0]Primaryshardisnotactiveorisn'tassignedisaknownnode.Timeout:[1m],request:org.elasticsearch.action.bulk.BulkShardRequest@7b5c733d]][5]:index[myshop_portal],type[type-product],id[13],message[UnavailableShardsException[[myshop_portal][2]Primaryshardisnotactiveorisn'tassignedisaknownnode.Timeout:[1m],request:org.elasticsearch.action.bulk.BulkShardRequest@47359fdc]]但是用junit跑就不出错....publicvoidbulkIndex(List<SearchDocument>searchDocuments){try{Nodenode=NodeBuilder.nodeBuilder().node();client=node.client();BulkRequestBuilderbulkRequest=client.prepareBulk();for(SearchDocumentsearchDoc:searchDocuments){IndexRequestBuilderindexRequest=this.prepareIndexRequest(searchDoc);bulkRequest.add(indexRequest);}BulkResponsebulkResponse=bulkRequest.execute().actionGet();if(bulkResponse.hasFailures()){thrownewElasticSearchException(bulkResponse.buildFailureMessage());}}catch(Exceptione){e.printStackTrace();}finally{if(client!=null){client.close();}}}privateIndexRequestBuilderprepareIndexRequest(SearchDocumentsearchDoc)throwsException{Stringid=searchDoc.getId();Stringsource=searchDoc.getSource();IndexRequestBuilderindexRequestBuilder=null;if(source!=null){System.out.println(source);indexRequestBuilder=client.prepareIndex(searchDoc.getIndexName(),searchDoc.getType(),id).setSource(source);}else{thrownewElasticSearchException("objectorsourceisnull,failedtoindexthedocument[id:"+searchDoc.getId()+"]");}returnindexRequestBuilder;}

解决方案

时间: 2024-09-26 11:21:20

elasticsearch批量建索引出错的相关文章

elasticsearch-Elasticsearch 安装完IK分词插件后使用curl命令创建索引出错,如题。

问题描述 Elasticsearch 安装完IK分词插件后使用curl命令创建索引出错,如题. 我配置完分词插件后输入了以下创建索引的命令. curl -XPUT http://localhost:9200/index 但是却出现了下面的错误. $ curl -XPUT http://localhost:9200/index % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spe

批量建用户的shell小脚本

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://navyaijm.blog.51cto.com/4647068/880270  一位群友提供的shell批量创建用户的小脚本,我把它记下来: #!/bin/bash for user in `cat /opt/userlist.txt` do      useradd $user      echo linux | passwd --stdin $user      echo "

sql索引-sql建索引之后的查询时间提高不大

问题描述 sql建索引之后的查询时间提高不大 我的索引是创建在uid上面,uid是int类型的,我在网上看到有个帖子,1000万条数据查询处25万条数据,加了索引之后用了2秒.没用索引之前利用表扫描用了128秒.然后我在1000万条数据中查询24万条,用了索引之后只提升了2秒不到..求指导啊拜托大神教一教 解决方案 A)128秒和2秒的条件都不一样,没有可比性.B)索引可以保证性能不会很差.并不表示不建索引肯定会差,这受到数据量大小.碎片多少.缓存情况等各种影响,波动很大.你正好碰到表现比较好的

用gcc批量建mysql库表

file 1 my.c //-------------------------------------------------------- // MySQL Database Create 1/13/2001. Netkiller Chen //-------------------------------------------------------- #include #include main() { char host[16]; //mysql host address. char

mysql使用crc32字段建索引提高查询效率

之前也写过这样的一篇文章,再来一篇. 给字符串类型的字段建立索引效率不高,但是必须要经常查这个字段怎么建索引?比如这个字段名称是sys_trans_id字符串类型,那么可以建一个字段sys_trans_id_src32来存储crc32的值,并给这个字段建立索引. crc32是整形,在MySQL中,给整形字段建立索引效率比较高,crc32虽然不能确保唯一性,但是无碍,相同的机率也是极小,关键是可以大大减少查询的范围,给sys_trans_id_src32这个字段建立索引,查询的时候带上crc32字

HTAP数据库 PostgreSQL 场景与性能测试之 21 - (OLTP+OLAP) 排序、建索引

标签 PostgreSQL , HTAP , OLTP , OLAP , 场景与性能测试 背景 PostgreSQL是一个历史悠久的数据库,历史可以追溯到1973年,最早由2014计算机图灵奖得主,关系数据库的鼻祖Michael_Stonebraker 操刀设计,PostgreSQL具备与Oracle类似的功能.性能.架构以及稳定性. PostgreSQL社区的贡献者众多,来自全球各个行业,历经数年,PostgreSQL 每年发布一个大版本,以持久的生命力和稳定性著称. 2017年10月,Pos

Sql Server之旅——第七站 为什么都说状态少的字段不能建索引

我们在学sqlserver的时候,大多教科书和前辈们都说状态少的字段不要建索引,由此带来的开销还不如不建索引,但是这句话有多少人真的知道, 或者说有多少人真的对此有比较深刻的理解,而不是听别人道听途说...这样记得快,忘记的也不慢...这篇我来分析一下这句话到底有几个意思.   一:现象 首先我们还是用测试数据来发现问题,我先建立一个Person,有5个字段,建表sql如下: DROP TABLE dbo.Person CREATE TABLE Person(ID INT PRIMARY KEY

lucene建索引

问题描述 org.apache.lucene.store.LockObtainFailedException:Lockobtaintimedout:NativeFSLock@D:lgindex_secondwrite.lockatorg.apache.lucene.store.Lock.obtain(Lock.java:84)atorg.apache.lucene.index.IndexWriter.init(IndexWriter.java:1041)atorg.apache.lucene.i

【Oracle】-【索引】先查数据再建索引,还是先建索引再插数据?

问题: 1.新建一个表结构,创建索引,将百万或千万级的数据使用insert导入该表. 2.新建一个表结构,将百万或千万级的数据使用isnert导入该表,再创建索引. 这两种效率哪个高呢?或者说用时短呢? 我感觉无论先建还是后建索引,当有数据时都需要update索引数据,问题是有索引的情况下插数据与有数据的情况下建立索引,各自的消耗. 实验: 100w记录, 1.先创建表和索引,再插入数据,大约1.3min. 2.先插数据,再建立两个索引,create table xxx as select *