2017-02-01 1 views
0

を返していないお勧め:Elasticsearch [2.3] - クエリは、私が弾性で数自動提案文書を更新しようとしてきた更新文書

{"update":{"_index":"my_autosuggest_index", "_type":"my_autosuggest_type", "_id": "123"}} 
{"doc" : {my-updated-doc}, "doc_as_upsert" : true} 

直接使用して更新ドキュメント123を求めたときに更新が、作品

GET /my_autosuggest_index/my_autosuggest_type/123 

更新されたドキュメントがあります。

使用して更新ドキュメントを照会するときしかし、:

/my_autosuggest_index/_suggest 

{ 
    "hotels-suggest": { 
    "text": "London", 
    "completion": { 
     "field": "suggest", 
     "size": 10, 
     "context": { 
     "displayType": "Airports" 
     } 
    } 
    } 
} 

私は更新前doc 123を取得します。

キャッシュをクリアしようとしましたが、まだ更新されていないドキュメントがあります。

私はこの奇妙な動作に関するドキュメントを見つけたり、他の説明を見つけることができませんでした。

ありがとうございました。

答えて

0

同じ問題が発生しました。これは、elasticsearchが文書の更新と削除を処理する方法によって発生します。

あなたはelasticsearchでhere

すべての文書は不変で、それについて少し読むことができます。文書が不変であるため、文書を更新すると、古い文書に削除マークが付けられ、新しい文書が作成されます。 elasticsearchインデックス内のセグメントがマージされると、古い文書は本当に削除されます。ここに問題がある。どういうわけか私の場合、提案クエリを使用したときには両方の結果が得られました。

これを解決するには、更新後にセグメントを強制的にマージすることができます。これは遅いですが動作します。

POST /index_name/_optimize?max_num_segments=1

私は最適化APIが推奨されていませんと思います。

それはあなたにも答えるためforce merge

+0

感謝を使用することができ、私はマージの力を試してみた動作しない場合 - !!ああ..あなたがすることができました – Daniel

+0

..による十分でないディスクスペースにノードを破砕しますデータを回復しますか?ログをチェックして、クラッシュしたことを確認できますか?十分なディスク容量とは別の理由がありました。 – pratikvasa

関連する問題