MongoDB与Oracle进行实时搜索

时间:2012-11-14 04:44:49

标签: oracle mongodb indexing real-time-updates

我正在构建一个应用程序,用于跟踪用户活动更改并向用户显示活动日志。以下是几点:

  1. 每天插入1亿条记录。
  2. 这些记录将立即(在几秒钟内)在搜索结果中编入索引并可用。
  3. 用户可以过滤显示的10个字段中的任何一个字段。

3 个答案:

答案 0 :(得分:1)

我认为Mongo和Oracle都无法满足您的需求。我建议从主数据存储中卸载搜索组件,可能类似于ElasticSearch:

http://www.elasticsearch.org/

答案 1 :(得分:1)

我的建议是ElasticSearch,因为您的主要用例是“过滤器”(ElasticSearch中的Facets)和搜索。它是为了扩大规模(否则Lucene也很好)并记住大数据。

答案 2 :(得分:0)

每天有1亿条记录听起来像是需要快速增长的服务器场来存储数据。我不熟悉Oracle如何分发这些数据,但是使用MongoDB,您需要根据搜索查询使用的字段(包括10个过滤字段)对数据进行分片。如果只搜索分片键,MongoDB足够聪明,只能访问包含正确分片的机器,所以就像在一台机器上查询一个小型数据库来获得你需要的东西一样。此外,如果分片键可以放入群集中每台机器的内存中,并且使用MongoDB的btree索引编制索引,那么您的查询将非常即时。