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