我想要实现文本搜索引擎。特别是要索引的文档将是带有权重的术语列表。
查询是一个简单的术语列表。
搜索的输出应该是一个按相关性匹配(相对于术语和它们的权重)的排序列表,,我需要存储的数据很大!它不适合于单个节点。因此,最终的存储必须易于分发.
您推荐哪种数据库存储?经过一些分析,我想在Couchbase和Riak之间做出选择。
编辑你觉得简单的关系数据库怎么样?他们已经有了一些很好的分发机制(例如: Postgres 9已经内置了) /edit
Riak有内置的搜索功能,但据我所知,我不想使用它,因为我需要索引来获得响应(而不是为每个查询计算它)。
另一方面,Couchbase 2“为JSON文档添加了辅助索引。索引是通过视图创建的,然后可以查询。索引分布均匀。
这听起来对Couchbase有很大的好处。
发布于 2012-05-15 16:38:22
我建议使用Riak搜索进行全文搜索,它非常强大,并从卢塞尼那里借鉴了大部分优势,同时仍然具有透明的容错性、复制性和可伸缩性。如果您的数据不适合于单个节点,那么它可能是最平衡的开源解决方案。
发布于 2014-09-14 23:38:11
要回答“是否可以/应该使用数据库存储索引文档”这一基本问题?
是。
这是一个相当常见的模式。几个组织(为了保护无辜而保留的名称)使用Solr作为索引和关联引擎,只从搜索中返回主键,然后转身从DB存储中检索实际的文档。
然而,这种方法也存在挑战;主要是在保持这两个系统(solr和db)保持同步方面。Couchbase使用其交叉数据中心复制技术来保持ElasticSearch实例的同步;Riak 2刚刚发布并有效地为数据库的每个碎片创建了一个Solr索引。这两种方法都很好,取决于您的使用情况。此外,您显然可以使用队列进行自己的同步,等等。
有关这两个DBs的更多详细信息,请访问
http://docs.couchbase.com/couchbase-elastic-search/ http://docs.basho.com/riak/latest/dev/advanced/search/
发布于 2012-04-24 15:32:20
我使用了ElasticSearch和CouchDB,它运行得很好。
https://stackoverflow.com/questions/10301086
复制相似问题