lucene - Lucene 中的 BitMap 字段

标签 lucene

有没有办法在lucene中存储位图字段并使用位掩码操作进行搜索?

我有很多对象的 bool 属性,而不是为每个属性都有一个单独的字段,我正在考虑是否有一种方法将每个属性存储为位图中的一个位并使用位掩码进行搜索。

字段值可能类似于:

Attr 1 | Attr 2 | Attr 3 | Attr 4
  0        1        0        1

如果我搜索具有 Attr 1 和 Attr 3 的文档,我会使用以下内容进行屏蔽:

Attr 1 | Attr 2 | Attr 3 | Attr 4
  1        0        1        0 

逻辑与运算

最佳答案

拼凑是将位字段转换为数字,然后搜索数值。例如,如果您将“0 1 0 1”转换为“5”,然后搜索“5”。但是,如果文档可以具有其他属性,这不能直接用于“查找具有 Attr 4 的所有文档”——您需要搜索(在查询解析器语法中):

+(1 3 5 7 9 11 13 15)

(假设“Attr 4”成为结果数值中的最低有效位(并且默认运算符为 OR))。

关于lucene - Lucene 中的 BitMap 字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18221292/

相关文章:

java - Lucene 5.5.2 中的解释

java - 使用lucene进行前缀搜索

java - 计算 Lucene 文档之间的相似度和质心

search - 如何在Elasticsearch中排序然后应用限制过滤器

java - Lucene - 验证索引的完整性

java - 使用 Java API 在 elasticsearch-2.2.0 中启用脚本

solr - 如果查询的词位于索引字段的开头,如何获得更好的 Lucene/Solr 分数?

search - Lucene 评分 : in what context is queryNorm used?

java - 为什么 Lucene 会锁定整个目录?为什么不只锁定单个 lucene 文件?

lucene - 使用 "string"字段、 "text"字段和 "copy"字段与 Solr 分面