ブール演算子¶
ブール演算子を使用すると、論理演算子によって複数の条件を結合することができます。Lucene では、ブール演算子として AND、+、OR、NOT、および - がサポートされています (ブール演算子はすべて大文字で表記する必要があります)。
OR
OR 演算子はデフォルトの結合演算子です。つまり、2 つの項の間にブール演算子がない場合は、OR 演算子が使用されます。OR 演算子は 2 つの項を結び付け、どちらかの項が含まれるドキュメントを、一致するドキュメントとして検索します。これは 2 つの集合の和集合と同等です。OR という単語の代わりに記号
||
を使用することもできます。「jakarta apache」または「jakarta」のみを含むドキュメントを検索するには、次のクエリを使用します。
"jakarta apache" jakarta
または
"jakarta apache" OR jakarta
AND
AND 演算子は、1 つのドキュメントのテキスト内に両方の項が存在するドキュメントを検索します。これは 2 つの集合の論理積と同等です。AND という単語の代わりに記号
&&
を使用することもできます。「jakarta apache」と「jakarta lucene」の両方を含むドキュメントを検索するには、次のクエリを使用します。
"jakarta apache" AND "jakarta lucene"
+
「+」 (必要) 演算子は、「+」記号の後の項が 1 つのドキュメントのフィールドのどこかに存在しなければならないことを表します。
「jakarta」を必ず含み、「apache」を含んでいても含んでいなくてもよいドキュメントを検索するには、次のクエリを使用します。
+jakarta apache
NOT
NOT 演算子は、NOT の後の項を含むドキュメントを除外します。これは 2 つの集合の差分と同等です。NOT という単語の代わりに記号
!
を使用することもできます。「jakarta apache」を含み、「jakarta lucene」は含まないドキュメントを検索するには、次のクエリを使用します。
"jakarta apache" NOT "jakarta lucene"
注釈
NOT 演算子は単項で使用することはできません。たとえば、次の検索は結果を返しません。
NOT "jakarta apache"
-
「-」 (禁止) 演算子は、
-
記号の後の項を含むドキュメントを除外します。「jakarta apache」を含み、「jakarta lucene」は含まないドキュメントを検索するには、次のクエリを使用します。
"jakarta apache" -"jakarta lucene"