卡桑德拉前缀搜索

时间:2018-04-29 07:03:31

标签: cassandra

我有桌子 CREATE TABLE站点(url文本PRIMARY KEY,count int) 与数据

com.google 5

com.google.subdomain 10

Cassandra是否支持在单个查询中选择所有Google网站(包含子域名)?

1 个答案:

答案 0 :(得分:2)

Cassandra SASI index type允许对前缀搜索的文本进行有效索引。包含的内容。但它不能像你的情况那样用于索引分区键。一种可能的解决方法可能是将相同数据(或仅域部分)的副本作为普通列放入表中,并索引该列。 (这个blog post对SASI指数的内部结构有非常详细的描述。)

如果您经常执行此操作,那么您可能需要重新建模数据,例如,使用以下结构表:

create table site(
   ps text,
   url text,
   count int,
   primary key (ps, url));

其中ps是域public suffix。但这取决于您是计算单个网址还是仅计算域名,否则您会为Google,Facebook等网站获取太多行。