如何在Cassandra中创建类似的查询?

时间:2011-04-28 02:24:19

标签: nosql cassandra

在我的密钥空间

posts = [
    #key
    'post1': {
        # columns and value
        'url': 'foobar.com/post1',
        'body': 'Currently has client support FOOBAR for the following programming languages..',
    },
    'post2': {
        'url': 'foobar.com/post2',
        'body': 'The table with the following table FOOBAR structure...',
    },
   #  ... ,
}

如何在Cassandra中创建类似查询以获取包含“FOOBAR”一词的所有帖子? 在SQL中是SELECT * FROM POST WHERE BODY LIKE '%FOOBAR%',但在Cassandra?

3 个答案:

答案 0 :(得分:5)

有效执行此操作的唯一方法是使用全文搜索引擎,例如https://github.com/tjake/Solandra(Solr-on-cassandra)。当然,你可以手动使用相同的技术自己动手,但通常不需要这样做。

请注意,对于SQL数据库也是如此:除非您使用像postgresql的tsearch2这样的FTS扩展名,否则它们会将%FOO%转换为表扫描。

答案 1 :(得分:0)

您可以创建另一个列系列,其中键是域,值是原始列族中的键。这样您就可以直接引用特定域中的记录。

答案 2 :(得分:0)

Cassandra 3.4在CSQL中添加了对LIKE的支持。所以最后它本身就可以使用。