2

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

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

字段值可能类似于:

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 

在逻辑与运算中

4

1 回答 1

2

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

+(1 3 5 7 9 11 13 15)

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

于 2013-08-16T18:46:23.130 回答