首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >当使用大容量请求向elasticsearch写入数据时,elasticsearch的_id字段是否支持"“这样的空白字符?

当使用大容量请求向elasticsearch写入数据时,elasticsearch的_id字段是否支持"“这样的空白字符?
EN

Stack Overflow用户
提问于 2021-03-08 13:47:08
回答 1查看 45关注 0票数 0

最近,当我用BulkRequest将数据写入elasticsearch时,我得到了以下异常:

代码语言:javascript
运行
复制
org.elasticsearch.action.ActionRequestValidationException: Validation Failed: 1: id is missing;
    at org.elasticsearch.action.bulk.BulkRequest.validate(BulkRequest.java:614)
    at org.elasticsearch.client.RestHighLevelClient.performRequest(RestHighLevelClient.java:1731)
    at org.elasticsearch.client.RestHighLevelClient.performRequestAndParseEntity(RestHighLevelClient.java:1697)
    at org.elasticsearch.client.RestHighLevelClient.bulk(RestHighLevelClient.java:473)
    at com.clougence.cloudcanal.es6.task.write.full.Es6FullInsertExecutorImpl.insert(Es6FullInsertExecutorImpl.java:70)
    at com.clougence.cloudcanal.es6.task.write.full.Es6FullApplyHandler.handle(Es6FullApplyHandler.java:35)
    at com.clougence.cloudcanal.es6.task.write.full.Es6FullApplyHandler.handle(Es6FullApplyHandler.java:16)
    at com.clougence.cloudcanal.task.applier.full.FullApplyWorkHandler.onEvent(FullApplyWorkHandler.java:61)
    at com.clougence.cloudcanal.task.applier.full.FullApplyWorkHandler.onEvent(FullApplyWorkHandler.java:20)
    at com.lmax.disruptor.WorkProcessor.run(WorkProcessor.java:143)
    at java.lang.Thread.run(Thread.java:748)

我的代码如下。我调试我的代码,发现esIdValue是空的,这会导致异常。

代码语言:javascript
运行
复制
    updateRequest = new UpdateRequest().index(indexDef.getIndexName())
                    .id(esIdValue)
                    .type(DEFAULT_TYPE)
                    .doc(docMap)
                    .docAsUpsert(true);
                bulkRequest.add(updateRequest);

我的问题是,elasticsearch支持编写一个_id值为"“的文档。我可以将空的_id值放入es中吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-03-09 15:42:57

ES _id字段不支持"“这样的空白字符。

你有两个选择:

  • 总是提供id

  • ,您只需要删除您所拥有的id字段,弹性将在"_id“字段中指定一个自动生成的字段。有点像

UpdateRequest().index(indexDef.getIndexName()) =新bulkRequest.add(updateRequest) .type(DEFAULT_TYPE) .doc(docMap) .docAsUpsert(真);

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66531015

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档