我已经用 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.
我需要它以便在查询匹配时我可以提取此向量并计算其与查询向量的相似度。如果您需要任何其他信息,请告诉我。 非常感谢,我相信我会在这里得到一些帮助。
最佳答案
您确定要使用数据库来实现搜索引擎吗?
您可以看看这个 Java 框架,它做得非常好并且非常容易学习。
它使用向量空间模型,您无需担心您在帖子中提到的所有上述字段,因为 Lucene 将它们与更高级的排名因素一起存储。
很抱歉,如果您有意使用数据库,我的回复对您没有帮助。
关于database - 如何将文档向量存储在搜索引擎的数据库中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11671625/