我用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.我需要它,以便在查询匹配的时候,我可以提取这个向量,并计算它与查询vector.If的相似性。如果您想要任何其他信息,请让我知道。非常感谢,我相信我会在这里得到一些帮助。
发布于 2012-07-28 10:34:57
您确定要使用数据库来实现搜索引擎吗?
你可以看看这个Java框架,它做得很好,学习起来也很简单。
Lucene Tutorial in 5 mins
它使用向量空间模型,你不需要担心你在帖子中提到的所有上述字段,因为Lucene将它们与更高级的排名因子一起存储。
很抱歉,如果你是故意使用数据库,我的回复对你没有帮助。
https://stackoverflow.com/questions/11671625
复制相似问题