3

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

谢谢,J

4

2 回答 2

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 的文档限制,具体取决于您拥有的数据量。

于 2013-10-15T03:35:13.293 回答
1

请参阅弹性搜索

  • 分布式、可扩展和高可用
  • 实时搜索和分析功能
  • 复杂的 RESTful API
于 2016-01-02T12:57:20.493 回答