使用 solr 在 dse 中连接两个表



我有两个表:

CREATE TABLE users(
parent_id int,
user_id text,
PRIMARY KEY (parent_id)
);
CREATE TABLE user_actions(
parent_id int,
user_id text,
type text,
created_at int,
data map<text, text>,
PRIMARY KEY(parent_id, created_at )
);

我是 solr 和 cassandra 的新手,我想使用 solr 在父 ID 上连接这两个表

目前我正在使用 Spark 加入,但我需要一个 solr 查询来加入。我正在寻找其他选项,但无法获得在 cqlsh 中运行查询的想法,或者在 Spark 代码中执行此操作

我想做这样的事情:

select * from users join user_actions on parent_id;

如果您使用的是 DSE 搜索,则可以联接搜索索引,类似于您尝试执行的操作。但是,它们的使用有限制。例如,两个表必须具有相同的分区键并驻留在相同的键空间中。这是为了确保您不执行跨节点联接。

您可能想观看以下视频: https://academy.datastax.com/units/joins?resource=ds310

假设您符合限制,我认为您的查询可能会像这样:

select * 
from <keyspace>.users
where solr_query = '{!join fromIndex=<keyspace>.user_actions}parent_id:*"';

这假设parent_id值本身没有过滤器。你可以有其他过滤器 - 我只是使用了parent_id,因为我不知道你的表中的任何其他列。

希望这有帮助吗?

-吉姆

最新更新