如何将 ElasticSearch 查询传递给 hadoop

How to pass ElasticSearch query to hadoop

我正在做一个允许在 Hadoop 上搜索的项目。它的工作原理是首先将查询传递给 ES,然后将生成的 ID 传递回 SQL,如下所示:

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

当我们有 100 或 1000 个 id 传回 SQL-on-Hadoop 时,这很有效,但如果我们有 100K 或 1M+ id 传回,则效果不佳。有哪些替代方法可以将结果集(id 列表?)从 ES 返回到 SQL?

将所有 elastic search ID 插入到单独的 table 中,然后将其与源 table 连接。

例如

CREATE TABLE ELASTIC_SEARCH_ID(id INT);

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