假设我有一个名为Questions的列族,如下所示:
问题= {
你是谁: {
用户名:“user1”
}, 答案是什么: {
用户名:“user1”
} ...
}
如何搜索包含某些字词的所有问题? 获取包含“什么”字样的所有问题。 我如何使用python或至少Java?
答案 0 :(得分:4)
Solandra(https://github.com/tjake/Solandra)是Lucandra的新名字。
Solandra是Cassandra和Solr(基于Lucene全文搜索引擎)的组合。
虽然您可以通过创建二级索引列系列(Google:cassandra二级索引)来实现一些基本的文本索引,但单独使用Cassandra并不能解决文本搜索问题。答案 1 :(得分:3)
我是Cassandra的新手,但与例如关系数据库相比,查询相对有限。 (这是设计的。)我很确定目前不支持全文搜索(这可能不在路线图上)。
您可能最好使用Lucene或类似的东西来索引问题的文本,无论是在Cassandra数据存储区内还是在单独的数据存储区中。
似乎至少有一个项目试图将Lucene与Cassandra整合,而且可能还有其他项目:
另一种方法可能是将问题分解为单词并将自己的单词索引保留为问题;你的里程可能会有所不同,像Lucene这样的东西无疑会给你更大的查询灵活性。
答案 2 :(得分:2)
听起来你可以添加“DSE搜索”,来自支持Cassandra的人,你会得到你需要的东西。 Lucene / Solr喜欢功能,但所有数据都存储在Cassandra中。
http://www.datastax.com/dev/blog/cassandra-with-solr-integration-details
最后一个绅士给出了一个很好的解决方案,但从可用性的角度来看,这个解决方案可以更好地满足您的目的。
免责声明:我为NoSQL供应商工作,但不在Cassandra工作。