【问题标题】:Query on Secondary Index with large text大文本二级索引查询
【发布时间】:2018-08-02 05:51:59
【问题描述】:

我有一张如下表,

CREATE TABLE log (    
"date" text,     
"timestamp" timestamp, "message" text,"module" text,"userId" text,
primary key ("date","timestamp")) with clustering order by ("timestamp" DESC);

我在“消息”列上创建了 SASI 索引,其中包含更多字符,我们可以预期每个日志消息列中大约有 250 个字符。对具有更多字符数的列进行索引会影响性能吗?

select * from log where date = '20180223' AND message LIKE '%test%'

【问题讨论】:

    标签: indexing cassandra cassandra-3.0


    【解决方案1】:

    根据这个presentation from 2016th,SASI 使用 Guava 的ConcurrentSuffixTree 实现,允许构建suffix tree 来执行有效的搜索。我不知道 Guava 的实现,但理论上在索引期间使用的空间和执行时间将线性增长到字符串的长度。但是因为索引 tex 需要比文本本身更多的空间来存储,所以在执行搜索时也可能会有一些开销。

    附:但是一切都应该在实时系统上进行测试。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-01-07
      • 1970-01-01
      • 1970-01-01
      • 2018-11-08
      • 1970-01-01
      • 2015-11-09
      • 2018-03-23
      相关资源
      最近更新 更多