10億レコードのインデックスを作成したいと考えています。各レコードには2つの属性(attribute1とattribute2)があります。 attribute1に同じ値を持つ各レコードは、マージする必要があります。例えば、私は2つの記録ElasticSearchでのインデックス作成後の検索
attribute1 attribute2
1 4
1 6
私弾性文書がデータの膨大な量に
{
"attribute1": "1"
"attribute2": "4,6"
}
でなければならない、私はバルク(約1000レコード)を読み、に基づいて、それらをマージする必要がありますがありますElasticSearchでそれらを検索し、検索結果とマージして索引付け/再索引付けします。 要約すると、私は一括して検索とインデックスを作成する必要があります。 私はこのルールを実装しましたが、Elasticはすべての結果を返しておらず、一部の文書は重複して索引付けされています。 各インデックスI ElasticSearchをリフレッシュした後、次の検索の準備が整うようにします。場合によっては動作しません。
{
"test_index": {
"settings": {
"index": {
"refresh_interval": "-1",
"translog": {
"flush_threshold_size": "1g"
},
"max_result_window": "1000000",
"creation_date": "1464577964635",
"store": {
"throttle": {
"type": "merge"
}
}
},
"number_of_replicas": "0",
"uuid": "TZOse2tLRqGk-vHRMGc2GQ",
"version": {
"created": "2030199"
},
"warmer": {
"enabled": "false"
},
"indices": {
"memory": {
"index_buffer_size": "40%"
}
},
"number_of_shards": "5",
"merge": {
"policy": {
"max_merge_size": "2g"
}
}
}
}
どのように私はこの問題を解決することができます 私のインデックスの設定は、次のように続いていますか?
この状況を処理する他の設定はありますか?一括コマンドで
私の質問はなぜデータをインデックス化して弾性をリフレッシュし、すぐにそれを検索すると弾性が結果を返さないのですか? – Ghasem
インデックスを更新するにはどうすればよいですか?あなたの 'refresh_interval'設定が-1であることがわかります。これは決してリフレッシュしないことを意味します。バルクインデックス作成後の – Val
私はAPIでリフレッシュを呼び出します。 – Ghasem