使用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,因为我不知道您表格中的任何其他列。
希望这对您有所帮助?
-吉姆
我有两个表:
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,因为我不知道您表格中的任何其他列。
希望这对您有所帮助?
-吉姆