2017-07-10 9 views
0

カスタマイズされたIDフィールドを使用して、いくつかのデータソースからデータをesにアップアップした後。 esとの衝突があるかどうかを確認したいと思います。いくつかの調査の後、私はそれを見つけるために_version> 1という条件を使うことができるかもしれないと考えます。しかし、結局のところ私は_versionフィールドに対して照会することに失敗しています、それについて何か考えてください。ありがとう。elasticsearch _version> 1のすべてのドキュメントを取得する

+0

私は最初の挿入時に空であるマッピングに別のフィールド、updateTimeを追加することをお勧めします。 'upsert 'ごとに' now() 'に設定するべきです。また、フィールドは検索可能でなければなりません。すると、 '_search?q = _exists_:updateTime'のようなクエリで目標を達成することができます。 –

答えて

1

それを検索することはできません。目的に応じて索引付けされるのではなく、通常は一時的な種類の情報が含まれているため、検索が理想的でない可能性があります。あなたはあまりにも多くの書類を持っていない場合

、あなたはスクロールを使用すると、このようなもので文書を取り戻すことができます:あなたはElasticsearch 1.xのを持っている場合は、多分これは、スクリプトで可能だった

{ 
    "query": { 
    "match_all": {} 
    }, 
    "version": true, 
    "_source": false 
} 

2.xと5.xではこれはもう不可能です。

1

書き込み操作では、コリジョンが発生しているかどうかを確認するために書き込み操作に使用する必要がありますが、書き込みが行われた後ではなく、かなり危険です。

また、常に異なる部分を更新していることがわかっている場合は、Update APIをご覧ください。特にretry_on_conflictパラメータと組み合わせて使用​​します。

関連する問題