unj*_*nj2 27 database full-text-search couchdb nosql riak
谢谢.
小智 11
现有的"NoSQL"数据库都没有提供可以命名为"全文搜索"的合理实现.到目前为止MongoDB几乎没有任何东西(使用正则表达式进行匹配不是全文搜索,使用$ in或$ on all关键字单词列表中的运算符进行搜索只是"全文搜索"的一个非常糟糕的实现).使用Solr,ElasticSearch或Sphinx是直截了当的 - 在应用程序级别上实现和集成.您的选择广泛取决于您的要求和当前设置.
我参与了使用Solandra (基于 Cassandra 的 Apache Solr)的应用程序的开发。根据我的经验,该系统相当稳定,能够处理 TB+ 数据。我个人对该软件非常满意,原因如下: 1. 由于 Cassandra 后端,数据自动分区。2.丰富的查询能力(得益于Solr和Lucene)。3. 快速读写(写入明显快于读取)。
但目前 Solandra,我认为不支持批量突变。也就是说,我可以在 Cassandra 中一次插入 100 列,但是 Solandra 不支持这一点。
对于 MongoDB,还没有完整的全文索引功能,但可能正在开发中,可能会在 v2.2 中发布。
同时,您可以使用字符串数组字段创建一个简单的倒排索引,并在其上放置索引,如下所述:Mongo 中的全文搜索
或者,您可以在专用的 Solr 或 Lucene 索引中维护并行全文索引,如果您真的雄心勃勃,可以直接从 Mongo oplog 复制到全文存储。否则,填充两者并与应用程序逻辑保持同步。