倒排索引的最佳NoSQL

倒排索引的最佳NoSQL,nosql,Nosql,我正在做一个小项目,我需要建立一个反向索引,并应用基于用户查询的相似性算法——基本信息检索。构建和搜索反向索引的最佳NoSQL产品是什么 谢谢, J由于倒排索引是关于在文档中存储单词及其位置之间的关系,因此我不确定这是否是NoSQL的一个好用例。传统的SQL在这里工作得更好。例如,尝试以下数据结构: Documents (DocumentID primary key, DocumentText text) Words (WordID primary key, Word text) Instanc

我正在做一个小项目,我需要建立一个反向索引,并应用基于用户查询的相似性算法——基本信息检索。构建和搜索反向索引的最佳NoSQL产品是什么

谢谢,
J

由于倒排索引是关于在文档中存储单词及其位置之间的关系,因此我不确定这是否是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)
使用这种结构,当您将文档插入
文档
表时,您可以解析出每个单词并将其添加到
单词
表中(如果是新的),或者检索现有的
单词ID
(如果已经存在),然后将相关数据添加到
实例
表中

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

请参阅

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