【问题标题】:Cassandra full text search likeCassandra 全文搜索喜欢
【发布时间】:2011-03-10 08:42:44
【问题描述】:

假设我有一个名为 Questions 的列族,如下所示: 问题 = {
你是谁: { 用户名:“user1” }, 答案是什么: { 用户名:“user1” }... }

如何搜索包含特定单词的所有问题? 获取所有包含“什么”词的问题。 我如何使用 python 或至少使用 Java 来做到这一点?

【问题讨论】:

标签: search full-text-search cassandra words


【解决方案1】:

Solandra (https://github.com/tjake/Solandra) 是 Lucandra 的新名称。

Solandra 是 Cassandra 和 Solr(基于 Lucene 全文搜索引擎)的组合。

Cassandra 本身并不能处理文本搜索,尽管您可以通过创建二级索引列族来实现一些基本的文本索引(谷歌:cassandra 二级索引)。

【讨论】:

    【解决方案2】:

    听起来你可以从支持 Cassandra 的人那里添加“DSE 搜索”,这样你就会得到你需要的东西。类似 Lucene/Solr 的功能,但所有数据都存储在 Cassandra 中。

    http://www.datastax.com/dev/blog/cassandra-with-solr-integration-details

    最后一位绅士给出了一个很好的解决方案,但从可用性的角度来看,这个解决方案可能更好地满足您的目的。

    免责声明:我为 NoSQL 供应商工作,但不是 Cassandra。

    【讨论】:

      【解决方案3】:

      我是 Cassandra 的新手,但与例如关系数据库相比,在其中进行查询相对有限。 (这是设计使然。)我很确定目前不支持全文搜索(这甚至可能不在路线图上)。

      您可能最好使用 Lucene 或类似的东西来索引问题的文本,无论是在 Cassandra 数据存储中还是在单独的数据存储中。

      似乎至少有一个项目正在尝试将 Lucene 与 Cassandra 集成,并且可能还有其他项目:

      在您的情况下,另一种方法可能是将问题分解为单词并维护您自己的问题单词索引;你的里程在这里可能会有所不同,像 Lucene 这样的东西无疑会给你更大的查询灵活性。

      【讨论】:

        猜你喜欢
        • 2011-05-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-10-25
        • 1970-01-01
        • 2011-03-14
        • 2015-09-19
        • 1970-01-01
        相关资源
        最近更新 更多