布尔运算符

布尔运算符使项可以通过逻辑运算符组合。

Lucene 支持以下布尔运算符:

AND && + OR || NOT ! -
注意: Lucene 布尔运算符 ANDORNOT 区分大小写并且必须按前面所示来写。
AND
&&
AND 运算符关联两个项或短语,并找到匹配的记录(如果这两个项或短语都存在于记录中)。这等价于两个集合的交集。您可以使用符号 && 替换单词 AND
示例:
  • 要搜索含有单词 Beta1 和短语 Beta2 test 的记录,请使用以下查询:
    Beta1 AND "Beta2 test"
  • 要搜索含有单词 Beta1、短语 Beta2 test7.1 的记录,请使用以下查询:
    Beta1 AND "Beta2 test" AND 7.1
    以下查询返回相同的结果:
    Beta1 && "Beta2 test" AND 7.1
+
+ 运算符(也称为必需运算符)表示 + 运算符后面的项或短语存在于记录字段中某个位置。
示例:
  • 要搜索必须含有单词 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

反馈