ブール演算子を使用することにより、複数の用語を論理演算子で組み合わせることができます。
Lucene では、次のブール演算子がサポートされます。
AND && + OR ||
NOT ! -重要: Lucene ブール演算子の AND、OR、NOT では大文字と小文字が区別され、以下のように書き込む必要があります。
- AND
- &&
- AND 演算子は、2 つの用語または語句を関連付け、レコード内にそれらの用語または語句の両方が含まれる場合に、一致するレコードを検出します。
これは、2 つの集合の論理積に匹敵します。 単語 AND の代わりに、シンボル && を使用することができます。
- 例
-
- +
- + 演算子は、必須演算子とも呼ばれ、レコード フィールド内のいずれかに + に続く用語または語句があることを示します。
- 例
- Beta1 という単語を必ず含み、Beta2 という単語を含む可能性があるレコードを検索するには、次のクエリーを使用します。
+Beta1 Beta2
- OR
- ||
- OR 演算子は、2 つの用語または語句を関連付け、レコード内にそれらの用語または語句のいずれかが含まれる場合は、一致するレコードを検出します。 これは、2 つの集合の和集合に匹敵します。 単語 OR の代わりに、シンボル || を使用することができます。
- 例
- Beta1 という単語または Beta2 test という語句のいずれかを含むレコードを検索するには、次のクエリーを使用します。
Beta1 OR "Beta2 test"
クエリーから返される結果は以下のとおり同様です。
Beta1 || "Beta2 test"
- NOT
- NOT 演算子は、NOT 演算子の後に続く用語または語句を含むレコードを除外します。これは、集合における差集合に匹敵します。
- 例
- Beta1 という単語を含むが、Beta2 という単語を含まないレコードを検索するには、次のクエリーを使用します。
Beta1 NOT Beta2
重要: NOT 演算子は、1 つの用語または語句のみで使用することはできません。 例えば、NOT Beta1 と指定して検索した場合、結果は返されません。
- -
- !
- - 演算子は、禁止演算子とも呼ばれ、記号 - に続く用語または語句を含むレコードを除外します。演算子 - の代わりに、記号 ! を使用することができます。
- 例
- Beta1 という単語を含むが、Beta2 という単語を含まないレコードを検索するには、次のクエリーを使用します。
Beta1 -Beta2
クエリーから返される結果は以下のとおりです。
-Beta2 Beta1
!Beta2 Beta1