我正在做一个允许在Hadoop上搜索的项目。它的工作原理是首先将查询传递给 ES,然后将生成的 ID 传递回 SQL,如下所示:
SELECT ... WHERE id in [1,24,383,2912,...]
当我们有 100 或 1000 个 id 要传回 SQL-on-Hadoop 时,这很有效,但如果我们有 100K 或 1M+ 个 id 要传回,那就不那么好了。有哪些替代方法可以将结果集(id列表?(从ES传递回SQL?
将所有弹性搜索 ID 插入到单独的表中,然后将其与源表联接。
例如
CREATE TABLE ELASTIC_SEARCH_ID(id INT);
SELECT ... FROM SOURCE S JOIN ELASTIC_SEARCH_ID ES ON S.ID=ES.ID;