有没有办法在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/