首页 > 解决方案 > 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);
}

谁能让我知道我在这里做错了什么?谢谢。

标签: spring-bootelasticsearchspring-data-jpa

解决方案


我现在使用 HighLevelRestClient,而不是使用 ElasticSearchRepository。我遇到了下面给出的 ElasticSerachRepository 的一些问题-

处理 org.elasticsearch.client.transport.NoNodeAvailableException

并且通过 HighLevelClient 可以轻松地批量插入请求。

https://www.elastic.co/guide/en/elasticsearch/client/java-rest/master/java-rest-high-document-bulk.html


推荐阅读