Sphinx 是否提供了一种预先计算文档相似度矩阵的方法?我看过 Sphinx/Solr/Lucene;似乎 Lucene 能够使用 Term Vectors Computing Document Similarity with Term Vectors间接地做到这一点。
目前我正在使用tf-idf-similarity gem来进行这些计算,但是随着数据集的增长,它的速度非常慢;类似 On^(n-1!)。
目前正试图找到一个更快的替代方案。Lucene 似乎是一个潜在的解决方案,但它在 Ruby 社区中没有那么多的支持,所以如果 Sphinx 有一个很好的方法来做到这一点,那将是理想的。
只是为了澄清;我没有尝试进行实时搜索相似度匹配,这似乎是 Lucene 和 Sphinx 最常见的用例,我正在尝试预先计算一个相似度矩阵,该矩阵将在所有文档与数据集之间创建相似度。这随后将用于不同类型用户分析的数据可视化。
还有任何有这方面经验的人我都对基准感到好奇。它在处理时间方面的外观以及您参考文档数量和文档大小平均值使用了多少计算能力和/或并行化。
目前,我处理大约 4000 份文件大约需要 40 分钟,处理 6400 条记录大约需要 2 小时。在此处提供 2 种不同的大小和时间以指示增长扩展,因此您可以看到对于非常大的数据集这将变得多么缓慢。