我正在开发一个小项目,我需要构建一个倒排索引并根据用户查询应用相似度算法 - 基本信息检索。用于构建和搜索倒排索引的最佳NoSQL产品是什么?
谢谢, Ĵ
答案 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)
- 分布式,可扩展且高度可用
- 实时搜索和分析功能
- 复杂的RESTful API