クエリー用語を修飾して、さまざまな検索オプションを利用できます。
- ワイルドカード検索
- Lucene では、1 つの用語で単一文字と複数文字のワイルドカードを使用する検索をサポートします。 単一文字のワイルドカード検索の場合は疑問符 (?) を使用し、複数文字のワイルドカード検索の場合はアスタリスク (*) を使用します。 複数文字のワイルドカード検索では、ゼロ個以上の文字を探します。
重要: 検索語の先頭文字として、? または * のワイルドカード文字を使用することはできません。
- 例
- test または text という単語を検索する場合
te?t
- test、tests、tester を検索する場合
test*
- ファジー検索
- ファジー検索は、検索語のつづりに誤りがある場合や、単語の一部しか指定されていない場合でも、一致を検出するタイプの検索です。ファジー検索を実行するには、用語の末尾に波形記号 (~) のシンボルを使用します。
- 例
-
- 近接検索
- Lucene では、レコード フィールド内で互いに近接している複数の単語の検索をサポートします。 近接検索を実行するには、語句の末尾に、後ろに番号が続く波形記号 (~) のシンボルを使用します。
- 例
- と Beta2 を指定して、レコード フィールド内で互いに近接した 10 個以内の単語を検索する場合
"Beta1 Beta2"~10
- 範囲検索
- 範囲検索を使用すると、クエリーで指定した上限値と下限値の間のフィールド値を含むレコードを突き合わせることができます。 範囲クエリーでは、上下限値を含むように指定することも、含まないように指定することもできます。
上下限値を含むクエリーは、以下のように大括弧と
TO 演算子で示されます。
[LowerBound TO UpperBound]
上下限値を含まないクエリーは、以下のように中括弧と
TO 演算子で示されます。
{LowerBound TO UpperBound}
範囲クエリーは、数値フィールド専用ではありません。 英字値フィールドで範囲検索を実行することもできます。 ソートは辞書式の順序で行われます。 範囲検索クエリーから返されるレコード自体には、関連性スコアは含まれません。
- 例
- SubmitDate フィールドの値が 2007 と 2008 (上下限を含む) の間にあるレコードを検索する場合
SubmitDate:[2007 TO 2008]
- 検索月を 2007 年 10 月に絞り込む場合
SubmitDate:[20071001 TO 20071031]
- SubmitDate フィールド値が、2008 年 10 月 1 日からユーザー データベース内の最新レコードの日付 (上下限を含む) の間にあるレコードを検索する場合
SubmitDate:[20081001 TO *]
- Headline の値が、alpha と delta (alpha を含み、delta を含まない) の間にあるレコードを検索する場合
Headline:[alpha TO delta}
この結果セットには、見出しが alpha、alpha1、beta、beta1、beta2 で始まるレコードが含まれる可能性があります。
- 用語の格上げ
- Lucene は、構成アナライザで計算されたレコードの突き合わせに使用する関連性スコアを提供します。 クエリーで使用する用語または語句の重要度を高めるには、用語または語句の後ろに脱字記号 (^) のシンボルとブースト係数 (数値) を使用します。 ブースト係数が高くなると、用語または語句の関連性が強くなります。
デフォルトのブースト係数は 1 です。ブースト係数には正数を指定する必要がありますが、1 より小さい値 (例えば、0.2) を指定して、用語または語句を含むレコードの関連性を低くすることができます。
- 例
-