布林運算子容許詞彙透過邏輯運算子相結合。
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