2016-03-19 16 views
0

Android AppでGoogle検索APIを使用しようとしていて、インデックスにドキュメントを追加しました。一部のフィールドの更新とGoogle検索APIドキュメントの再インデックス

私はIDでドキュメントを取得していますが、一部のフィールドだけを更新したいのではなく、すべてを更新したいと思います。私は私の文書のちょうど3つのフィールドを更新しようとしている上記のコードで

// 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"); 
      } 

:私が実行しようとしましたが、成功しません

私がドキュメントで見つけた唯一の情報は、ドキュメントを再インデックスする場合、同じIDを持つ新しいものを保存する必要があり、再インデックスされるということです。

すべてのフィールドを入力する必要がありますか、一部のフィールドを更新する方法がありますか?

は、私がどんな答えが

答えて

1

あなたが新しいビルダーに既存のドキュメントのすべてのプロパティ(フィールド、ファセットDOC_IDなど)をコピーする必要があり感謝しています。 Document.newBuilderは静的であり、既存のドキュメントのデータを使用していません。

関連する問題