Android アプリで Google Search API を使用しようとしていますが、ドキュメントをインデックスに追加しました。
現在、ID でドキュメントを取得しており、すべてではなく一部のフィールドのみを更新したいと考えています。
私がやろうとしたが成功しなかったこと:
// Fetch a single document by its doc_id
Document doc = index.get(myDocID);
LOG.warning("FOUND DOC " + doc.toString());
doc.newBuilder()
.addField(Field.newBuilder()
.setName("field1")
.setNumber(valueForField1))
.addField(Field.newBuilder()
.setName("field2")
.setNumber(valueForField2))
.addField(Field.newBuilder()
.setName("field3")
.setDate(valueForField3))
.build();
LOG.warning("NEW DOC " + doc.toString());
try {
index.put(doc);
LOG.warning("PUT OK");
} catch (PutException e) {
if (StatusCode.TRANSIENT_ERROR.equals(e.getOperationResult().getCode())) {
// retry putting the document
}
LOG.warning("ERROR");
}
上記のコードでは、ドキュメントの 3 つのフィールドだけを更新しようとしています。
ドキュメントで見つけた唯一の情報は、ドキュメントを再インデックス化する場合、同じ ID で新しいドキュメントを保存する必要があり、再インデックス化されるということです。
すべてのフィールドに入力する必要がありますか? または、一部のフィールドだけを更新する方法はありますか?
私はどんな答えにも感謝します