2016-12-16 7 views
0

文書の更新に関連する問題に直面しています。elasticsearchは文書を更新しません

ドキュメントをインデックス作成(作成)でき、インデックスに正しく追加されています。

しかし、私がそれらのうちの1つを更新しようとしているとき、操作は行われず、ドキュメントは更新されません。

{ 
     "user" : "user4", 
     "timestamp" : "2016-12-16T15:00:22.645Z", 
     "startTimestamp" : "2016-12-16T15:00:22.645Z", 
     "dueTimestamp" : null, 
     "closingTimestamp" : null, 
     "matter" : "F1", 
     "comment" : null, 
     "status" : 0, 
     "backlogStatus" : 20, 
     "metainfos" : { 
      "ceeaceaaaceeaceaaaceeaceaaaceeaaceaaaceeabceaaa" : [ "FZ11" ] 
     }, 
     "resources" : [ ], 
     "notes" : null 
     } 

これは私がUpdateRequestを構築するために使用しているコードです:

this.elasticsearchResources.getElasticsearchClient() 
.prepareUpdate() 
.setIndex(this.user.getMe().getUser()) 
.setType(type) 
.setId(id.toString()) 
.setDoc(source) 
.setUpsert(source) 
.setDetectNoop(true); 

私もデバッグすることができました私が初めてみたいだドキュメントを追加

それはelasticsearchに送るこの要求の内容です。文書は次のとおりです。

{ 
    "user":"user4", 
    "timestamp":"2016-12-16T15:00:22.645Z", 
    "startTimestamp":"2016-12-16T15:00:22.645Z", 
    "dueTimestamp":null, 
    "closingTimestamp":null, 
    "matter":"F1", 
    "comment":null, 
    "status":0, 
    "backlogStatus":20, 
    "metainfos":{ 

    }, 
    "resources":[ 

    ], 
    "notes":null 
} 

あなたが唯一の違いはmetainfosで見ることができるように、私は、ドキュメントを更新しようとすると、空になっています。

update requestを実行すると、ドキュメントは更新されません。私はmetainfosの内容が以前のように続け意味:私はかなり間違っているかを把握していない

#curl -XGET 'http://localhost:9200/user4/fuas/_search?pretty' 
{ 
    "took" : 2, 
    "timed_out" : false, 
    "_shards" : { 
    "total" : 1, 
    "successful" : 1, 
    "failed" : 0 
    }, 
    "hits" : { 
    "total" : 1, 
    "max_score" : 1.0, 
    "hits" : [ { 
     "_index" : "living_v1", 
     "_type" : "fuas", 
     "_id" : "327c9435-c394-11e6-aa90-02420a011808", 
     "_score" : 1.0, 
     "_routing" : "user4", 
     "_source" : { 
     "user" : "user4", 
     "timestamp" : "2016-12-16T15:00:22.645Z", 
     "startTimestamp" : "2016-12-16T15:00:22.645Z", 
     "dueTimestamp" : null, 
     "closingTimestamp" : null, 
     "matter" : "F1", 
     "comment" : null, 
     "status" : 0, 
     "backlogStatus" : 20, 
     "metainfos" : { 
>>>>>>>> "ceeaceaaaceeaceaaaceeaceaaaceeaaceaaaceeabceaaa" : [ "FZ11" ] 
     }, 
     "resources" : [ ], 
     "notes" : null 
     } 
    } ] 
    } 
} 

。何か案は?

答えて

1

ElasticSearchは空のオブジェクトを更新しません。あなたが試すことができます:
ヌル"metainfos":null
または "metainfos":"ceeaceaaaceeaceaaaceeaceaaaceeaaceaaaceeabceaaa":[]

フィールドをきれいにします。

+0

あなたの答えにもう少し詳しく聞かせてください。それにもかかわらず、ドキュメントを初めて作成するとき、このプロパティー 'metainfos'は' null値 '(' metainfos:[])ではな​​く空の配列です。出来ますか? (私は今それをテストすることができません...) – Jordi

+0

それはあなたのマッピングに依存しますが、はい空の配列も動作します。 – Hosar

+0

ありがとう@Hosar。あなたはあなたのマッピングに依存していることを書き留めました。あなたは何を意味しているのでしょうか? – Jordi

関連する問題