使用solr连接dse中的两个表

Join Two tables in dse using solr

我有两个表:

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,因为我不知道您表格中的任何其他列。

希望这对您有所帮助?

-吉姆