indexing - 快速内存倒排索引

标签 indexing lucene lucene.net information-retrieval

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

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

我希望可以将 Lucene 用作倒排索引,但不知道如何将我自己的自定义特征向量与预先计算的权重关联到文档。任何建议将不胜感激!

谢谢。

最佳答案

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

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

因此,您可以为每个功能设置一个排序集,其中每个
特征->[ { docid, 分数 }, {docid, 分数} ..]

zadd 特征评分 docid

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

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

关于indexing - 快速内存倒排索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6605239/

相关文章:

java - 无法使用 Hibernate Search 搜索子实体

java - 在 Lucene 索引中使用 RegexQuery(不是任何其他)搜索 '$'

lucene - 如何使用 Lucene.Net 搜索搜索字符串数组

performance - 是否可以暂时禁用 Postgres 中的索引?

java - java中两种不同类型的索引数组

search - 在 hadoop 中建立索引和搜索

mysql - 在 group by 子句中使用的列上添加索引好吗?

elasticsearch - 如何使用 Elasticsearch 从文本中找到类似的标签

lucene - 在 Lucene 索引中添加文档时如何获取 DocId?

Lucene.NET 词干问题