2012-04-17 52 views
2

我正在一个小项目,我需要建立一个倒排索引,并应用基于用户查询 - 基本信息检索相似度算法。什么是建立和搜索倒排索引的最好的NoSQL产品?最好的NoSQL的倒排索引

感谢, Ĵ

回答

1

由于反转的指标是所有存储在文档中的单词和他们的位置之间的关系,我不知道这的确是一个不错的用例的NoSQL。传统的SQL在这里会更好。例如,尝试的数据结构是这样的:

Documents (DocumentID primary key, DocumentText text) 
Words (WordID primary key, Word text) 
Instances (InstanceID primary key, WordID foreign key, DocumentID foreign key, WordIndex integer) 

采用这种结构,当你插入文档到Documents表,你分析出每个单词,并把它添加到Words表,如果它是新的或检索现有如果它已经存在,则将其添加到Instances表中。

如果您打算使用NoSQL,您可以将它用于MongoDB之类的东西,并将所有文档放在一个集合中,并将所有文档放在另一个集合中。在每个Word文档中,包含一个Instances数组,该数组可以是关联文档的ObjectID和该文档中的单词索引的对象数组。但是,我不确定MongoDB是否针对文档中的大型数组进行了优化。常见单词如'a'和'the'最终可能超过4MB文档限制,具体取决于您拥有的数据量。

0

看到Elasticsearch

  • 分布式,可扩展性和高可用性
  • 实时搜索和分析能力
  • 复杂的RESTful API