ここに私が使用したコードがあります。 DocumentModelクラスはelasticsearchドキュメントとして使用されます。現在、私はelasticsearch '_id'としてurlを使用しており、javaを使用して他のフィールドdocumentIdのUUIDを生成しています。このコードを使用してドキュメントのインデックスを作成しようとすると、存在する場合はドキュメントが更新されていない場合はインデックスが更新されます。問題はドキュメントを更新し、documentIdも更新することです。しかし、私はdocumentIdを更新して既存のdocumentIdを使用する必要はありません。 これを行うには、このコードでどのような変更を行う必要がありますか?elasticsearch文書をアップする
String uuid = UUID.randomUUID().toString();
documentModel.setDocumentID(uuid);
String jsonForIndex = gson.toJson(documentModel);
IndexRequest indexRequest = new IndexRequest(indexName, typeName, documentModel.getId());
indexRequest.source(jsonForIndex);
UpdateRequest updateRequest = new UpdateRequest(indexName, typeName, documentModel.getId());
updateRequest.doc(jsonForUpdate);
updateRequest.upsert(indexRequest);
UpdateQuery updateQuery = new UpdateQueryBuilder().withIndexName(indexName).withType(typeName)
.withId(documentModel.getId()).withDoUpsert(true).withUpdateRequest(updateRequest).withIndexRequest(indexRequest).build();
elasticsearchTemplate.update(updateQuery).getId();
ありがとうございました。 IndexRequestとUpdateRequestを使用してUpdateQueryを使用して(prepareGetを使用せずに)行う方法はありますか? –