1

我已经用 Java 实现了一个搜索引擎。它有一个存储倒排索引的数据库,即从术语到该术语出现的文档列表的映射。有一个功能允许用户上传文档,该文档可以添加到文档中以进行索引。我面临的问题是,每次添加新文档时,索引都会在内存中重建而不是更新。要更新,我需要一个存储文档向量的数据库,这些文档向量本质上是索引中每个术语的 tf-idf(词频 * 逆文档频率)。我无法为它计算出数据库结构,因为存储这样的结构需要哪些行和列或多个表。

我需要存储

1. Document ID 
2. Document Title
3. N dimensional Document vector where N is the number of unique terms
4. N terms 
5. IDF of each term
6. TF of each term for every document.

我需要它,以便在查询匹配时我可以提取此向量并计算其与查询向量的相似度。如果您需要任何其他信息,请告诉我。非常感谢,我相信我会在这里得到一些帮助。

4

1 回答 1

3

您确定要使用数据库来实现搜索引擎吗?

你可以看看这个 Java 框架,它做得很好,而且很容易学习。

Lucene 教程 5 分钟

它使用向量空间模型,您无需担心您在帖子中提到的所有上述字段,因为 Lucene 将它们与更高级的排名因素一起存储。

很抱歉,如果您有意使用数据库,我的回复对您没有帮助。

于 2012-07-28T02:34:57.437 回答