快速内存倒排索引

evg*_*nyp 6 lucene indexing lucene.net information-retrieval

我正在寻找一个通用的倒排索引的快速内存实现.我需要的是存储具有几百万个实体的权重的特征,并使用反向索引来计算使用各种距离函数的实体之间的相似性.

我可以在一些快速键值存储中存储实体的所有其他属性.

我希望我可以将Lucene用作倒置索引,但是无法看到我如何将文档与我自己的具有预先计算权重的自定义特征向量相关联.任何建议将不胜感激!

谢谢.

Gry*_*ynn 5

我一直在做一些类似的工作,并发现 redis 的 zset 几乎是我所需要的(尽管我现在实际上并没有使用它;我已经基于内存映射文件推出了自己的解决方案)。

基本上 zset 是一组排序的键值对。

因此,您可以对每个特征进行排序,其中每个
特征->[ { docid, score }, {docid, score} ..]

zadd 特征分数 docid

redis 然后有一些很好的运算符来合并,提取范围等。参见 zunionstore, zrange (http://redis.io/commands/zunionstore)。

非常快(据说)并且全部在内存中等等......(虽然redis不是嵌入式数据库)。


小智 1

你看过梗犬吗?我不太确定它是否有内存索引,但它在索引和评分方面比 Lucene 更具可扩展性。