使用solr连接dse中的两个表

piok6c0g  于 2021-06-14  发布在  Cassandra
关注(0)|答案(1)|浏览(279)

我有两张table:

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;
voj3qocg

voj3qocg1#

如果您使用的是dse search,那么您可以加入搜索索引,这与您尝试执行的操作类似。然而,它们的使用受到限制。例如,这两个表必须具有相同的分区键并驻留在相同的键空间中。这是为了确保不执行跨节点联接。
您可能需要查看以下视频:https://academy.datastax.com/units/joins?resource=ds310
假设你已经满足了限制条件,我想你可以这样做:

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

它假定父\u id值本身没有筛选器。您可以使用其他筛选器-我只是使用了parent\u id,因为我不知道表中的任何其他列。
希望这有帮助?
-吉姆

相关问题