NoSQL数据库中的全文搜索

unj*_*nj2 27 database full-text-search couchdb nosql riak

  • 这里有没有人有任何部署在任何NoSQL数据库中进行全文搜索的真实在线系统的经验?
  • 例如,MongoDB,Riak和CouchDB中的全文搜索比较如何?
  • 我正在寻找的一些指标是易于部署和维护,当然还有速度.
  • 他们有多成熟?它们是Lucene基础设施的替代品吗?

谢谢.

小智 11

现有的"NoSQL"数据库都没有提供可以命名为"全文搜索"的合理实现.到目前为止MongoDB几乎没有任何东西(使用正则表达式进行匹配不是全文搜索,使用$ in或$ on all关键字单词列表中的运算符进行搜索只是"全文搜索"的一个非常糟糕的实现).使用Solr,ElasticSearch或Sphinx是直截了当的 - 在应用程序级别上实现和集成.您的选择广泛取决于您的要求和当前设置.

  • 错--Riak有Riak-Search(见下文),这是该产品不可或缺的一部分,并提供了lucene imho的良好实现.我们测试了这一点,并计划在生产中使用它来构建一个非常大的Web应用程序. (4认同)
  • 我不得不反对.RavenDB具有出色的全文搜索功能. (3认同)

Eva*_*611 9

以下是有关Riak Search http://wiki.basho.com/Riak-Search.html的详细信息 以及有关它的演示文稿


Jas*_*ith 7

是.请参阅CouchDB-Lucene,它是一个CouchDB扩展,用于支持数据的完整Lucene查询.


Tom*_*err 5

如果我记得的话,MarkLogic有更好的文本搜索选项.以下是关于该主题讨论,尽管它是在他们的博客上,来自他们的作者.


Irf*_*fan 5

我参与了使用Solandra (基于 Cassandra 的 Apache Solr)的应用程序的开发。根据我的经验,该系统相当稳定,能够处理 TB+ 数据。我个人对该软件非常满意,原因如下: 1. 由于 Cassandra 后端,数据自动分区。2.丰富的查询能力(得益于Solr和Lucene)。3. 快速读写(写入明显快于读取)。

但目前 Solandra,我认为不支持批量突变。也就是说,我可以在 Cassandra 中一次插入 100 列,但是 Solandra 不支持这一点。


Chr*_*tow 4

对于 MongoDB,还没有完整的全文索引功能,但可能正在开发中,可能会在 v2.2 中发布

同时,您可以使用字符串数组字段创建一个简单的倒排索引,并在其上放置索引,如下所述:Mongo 中的全文搜索

或者,您可以在专用的 Solr 或 Lucene 索引中维护并行全文索引,如果您真的雄心勃勃,可以直接从 Mongo oplog 复制到全文存储。否则,填充两者并与应用程序逻辑保持同步。