布尔运算符使项可以通过逻辑运算符组合。
Lucene 支持以下布尔运算符:
AND && + OR ||
NOT ! -注意: Lucene 布尔运算符 AND、OR 和 NOT 区分大小写并且必须按前面所示来写。
- AND
- &&
- AND 运算符关联两个项或短语,并找到匹配的记录(如果这两个项或短语都存在于记录中)。这等价于两个集合的交集。您可以使用符号 && 替换单词 AND。
- 示例:
-
- +
- + 运算符(也称为必需运算符)表示 + 运算符后面的项或短语存在于记录字段中某个位置。
- 示例:
- 要搜索必须含有单词 Beta1 和可能含有 Beta2 的记录,请使用以下查询:
+Beta1 Beta2
- OR
- ||
- OR 运算符关联两个项或短语,并找到匹配的记录(如果项或短语中的任何一个存在于记录中)。这等价于两个集合的并集。您可以使用符号 || 替换单词 OR。
- 示例:
- 要搜索含有单词 Beta1 或短语 Beta2 test 的记录,请使用以下查询:
Beta1 OR "Beta2 test"
以下查询返回相同的结果:
Beta1 || "Beta2 test"
- NOT
- NOT 运算符排除含有 NOT 运算符后面的项或短语的记录。这等价于集合间的差集。
- 示例:
- 要搜索含有单词 Beta1 而不是 Beta2 的记录,请使用以下查询:
Beta1 NOT Beta2
注意: NOT 运算符不能与单独一项或一个短语一起使用。例如,以下搜索将不会返回任何结果:NOT Beta1
- -
- !
- - 运算符(也称为禁止运算符)排除含有 - 后面的项或短语的记录。您可以使用符号 ! 替换运算符 -。
- 示例:
- 要搜索含有单词 Beta1 而不是 Beta2 的记录,请使用以下查询:
Beta1 -Beta2
以下查询返回相同的结果:
-Beta2 Beta1
!Beta2 Beta1