反向索引的最佳NoSQL

时间:2012-04-17 07:09:48

标签: nosql

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

谢谢, Ĵ

2 个答案:

答案 0 :(得分: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表中(如果它是新的)或检索现有的WordID如果它已经存在,然后将相关数据添加到Instances表。

如果您打算使用NoSQL,可以将它与MongoDB一起使用,并将所有文档放在一个集合中,将所有单词放在另一个集合中。在每个Word文档中,包含一个Instances数组,该数组是一个对象数组,其中包含相关文档的ObjectID和该文档中的单词索引。但是,我不确定MongoDB是否针对文档中的大型数组进行了优化。像“a”和“the”这样的常用词甚至可能会超过4MB的文档限制,具体取决于您拥有的数据量。

答案 1 :(得分:0)

请参阅Elasticsearch

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