2017-02-07 2 views
0

私はHadoopでの検索を可能にするプロジェクトに取り組んでいます。それはどのようにクエリが最初のESに渡されている作品、その結果のIDがそうのように、バックSQLに渡されます。私たちはSQL-オンに戻って渡すために100のまたは1000のIDを持っている場合ElasticSearchクエリをhadoopに渡すには

SELECT ... WHERE id in [1,24,383,2912,...] 

これがうまく機能しますHadoopですが、100Kまたは1M + IDを返すとうまくいかない場合もあります。結果セット(IDのリスト?)をESからSQLに戻すための代替アプローチは何ですか?

答えて

1

すべて弾性検索 idsを別の表に挿入し、ソース表と結合します。

CREATE TABLE ELASTIC_SEARCH_ID(id INT); 

SELECT ... FROM SOURCE S JOIN ELASTIC_SEARCH_ID ES ON S.ID=ES.ID; 
+0

ありがとうございます - 他の方法では、結合を行うと非常に非効率的になります(より効果的な代替手段がある場合)。 – David542

+0

ありがとう、私はあなたの答えを受け入れ、私はここでフォローアップを頼んだ - http://stackoverflow.com/questions/42125754/passing-reduced-es-query-results-to-sql?noredirect=1&lq=1。 – David542

関連する問題