elasticsearch批量建索引出错
[0]: index [myshop_portal], type [type-product], id [1], message [UnavailableShardsException[[myshop_portal][2] Primary shard is not active or isn't assigned is a known node. Timeout: [1m], request: org.elasticsearch.action.bulk.BulkShardRequest@47359fdc]]
[2]: index [myshop_portal], type [type-product], id [3], message [UnavailableShardsException[[myshop_portal][4] Primary shard is not active or isn't assigned is a known node. Timeout: [1m], request: org.elasticsearch.action.bulk.BulkShardRequest@2e0a2298]]
[3]: index [myshop_portal], type [type-product], id [4], message [UnavailableShardsException[[myshop_portal][0] Primary shard is not active or isn't assigned is a known node. Timeout: [1m], request: org.elasticsearch.action.bulk.BulkShardRequest@7b5c733d]]
[5]: index [myshop_portal], type [type-product], id [13], message [UnavailableShardsException[[myshop_portal][2] Primary shard is not active or isn't assigned is a known node. Timeout: [1m], request: org.elasticsearch.action.bulk.BulkShardRequest@47359fdc]]
但是用junit跑就不出错....
public void bulkIndex(List<SearchDocument> searchDocuments) {
try {
Node node = NodeBuilder.nodeBuilder().node();
client = node.client();
BulkRequestBuilder bulkRequest = client.prepareBulk();
for (SearchDocument searchDoc : searchDocuments) {
IndexRequestBuilder indexRequest = this.prepareIndexRequest(searchDoc);
bulkRequest.add(indexRequest);
}
BulkResponse bulkResponse = bulkRequest.execute().actionGet();
if (bulkResponse.hasFailures()) {
throw new ElasticSearchException(bulkResponse.buildFailureMessage());
}
} catch (Exception e) {
e.printStackTrace();
} finally {
if (client != null) {
client.close();
}
}
}
private IndexRequestBuilder prepareIndexRequest(SearchDocument searchDoc) throws Exception {
String id = searchDoc.getId();
String source = searchDoc.getSource();
IndexRequestBuilder indexRequestBuilder = null;
if (source != null) {
System.out.println(source);
indexRequestBuilder = client.prepareIndex(searchDoc.getIndexName(), searchDoc.getType(), id).setSource(source);
} else {
throw new ElasticSearchException("object or source is null, failed to index the document [id: " + searchDoc.getId() + "]");
}
return indexRequestBuilder;
}
相关推荐
springBoot整合kafka和elasticSearch,实现批量拉取日志以及批量更新到es里
**错误处理**:处理可能出现的异常,如网络中断、ES索引冲突等,确保系统的健壮性。4. **索引分片和副本**:根据集群资源设置合适的Elasticsearch索引分片和副本数量,提高读写性能。
springboot整合全文搜索引擎Elasticsearch | Spring Boot 28
???? Java学习路线配套文章:Java学习路线总结,搬砖工逆袭Java架构师(全网最强) ???? 基础推荐:Java基础教程系列 ???? 实战推荐:Spring Boot基础教程 ???? 简介:Java领域优质创作者????、CSDN哪吒公众号作者✌ 、Java架构师奋斗者???? ???? 扫描主页左侧二维码,加入群聊,一起学习、一起进步 ???? 欢迎点赞 ???? 收藏 ⭐留言 ???? 目录一、Elasticsearch简介二、下载与安装1、Elasticsearch官网下载地址2、下
Spring Boot 与 Elasticsearch 搜索引擎整合
数据同步:如何将关系型数据库(如MySQL)中的数据实时同步到ES?查询性能:如何优化复杂查询(如多条件过滤、聚合)的响应时间?分布式一致性:ES集群分片/副本机制下,如何保证数据的可靠性?开发效率:如何避免重复编写ES客户端代码,实现"面向对象"的搜索开发?使用@Document和@Field@Data@Document(indexName = "product", shards = 3, replicas = 2) // 3分片,2副本@Id // 对应ES文档的_id字段。
es通过mapping创建索引出错
问题描述: 最近,我在es中创建索引的时候报出奇怪的错误,问题描述大致如下,这个错误后来验证后发现不少同学也遇到过,主要是es版本的差异造成的, Caused by: ElasticsearchException[Elasticsearch exception [type=illegal_argument_exception, reason=Could not convert [regionNam...
shell脚本批量删除es索引的方法
在IT行业中,Elasticsearch(简称ES)是一个广泛使用的分布式搜索引擎,它提供了高效的数据存储、检索和分析功能。


Web 开发
