spring-boot - ElasticsearchCrudRepository 批量插入给出错误 - 验证失败:1:未添加请求
问题描述
我在我的 Spring 项目中使用 ElasticsearchCrudRepository 将记录插入到弹性搜索中。单记录插入工作正常,但是当我尝试插入记录列表时,我面临弹性搜索的一些异常。下面是堆栈跟踪 -
org.elasticsearch.action.ActionRequestValidationException:验证失败:1:未添加请求;在 org.elasticsearch.action.ValidateActions.addValidationError(ValidateActions.java:29) ~[elasticsearch-5.6.11.jar:5.6.11] 在 org.elasticsearch.action.bulk.BulkRequest.validate(BulkRequest.java:600) ~[elasticsearch-5.6.11.jar:5.6.11] at org.elasticsearch.action.TransportActionNodeProxy.execute(TransportActionNodeProxy.java:46) ~[elasticsearch-5.6.11.jar:5.6.11] at org.elasticsearch。 client.transport.TransportProxyClient.lambda$execute$0(TransportProxyClient.java:59) ~[elasticsearch-5.6.11.jar:5.6.11] at org.elasticsearch.client.transport.TransportClientNodesService.execute(TransportClientNodesService.java:250) ~[elasticsearch-5.6.11.jar:5.6.11] 在 org.elasticsearch.client.transport.TransportProxyClient。
下面是我用来将数据插入弹性搜索的代码 -
public interface DataModelElasticRepository extends ElasticsearchRepository<BaseDataModel,String> {
}
@Service
public class DataModelServiceImpl implements DataModelService, Serializable {
@Autowired
private DataModelElasticRepository dataModelRepository;
@Override
public BaseDataModel save(BaseDataModel datamodel) {
// TODO Auto-generated method stub
return dataModelRepository.save(datamodel);
}
@Override
public Iterable<BaseDataModel> save(Iterable<BaseDataModel> dataModelList) {
return dataModelRepository.saveAll(dataModelList);
}
}
public interface DataModelService {
BaseDataModel save(BaseDataModel datamodel);
Iterable<BaseDataModel> save(Iterable<BaseDataModel> dataModelList);
}
谁能让我知道我在这里做错了什么?谢谢。
解决方案
我现在使用 HighLevelRestClient,而不是使用 ElasticSearchRepository。我遇到了下面给出的 ElasticSerachRepository 的一些问题-
处理 org.elasticsearch.client.transport.NoNodeAvailableException
并且通过 HighLevelClient 可以轻松地批量插入请求。
推荐阅读
- javascript - Promise.all 从 Firebase 返回错误的快照
- javascript - 单元测试和延续——本地存储
- bash - 程序与 openmpi 挂起
- redux - 为什么我的 Redux Thunk 操作的结果返回一个 Promise?
- mysql - 数据库中的时区错误
- assembly - 如何检测何时按下按钮?
- python - BrokenPipeError:[Errno 32] 运行 GAN 时出现断管错误
- java - eclipse 无法运行 main “错误无法找到或加载主类”
- vue.js - Vuetify - 如何更改 v-textarea 行高?
- javascript - 使用量角器测试非角度页面无法单击链接元素