ローカルパラメータ

ローカルパラメータは、Solr リクエストにおけるクエリパラメータに固有の引数です。

ローカルパラメータは、クエリ文字列などの特定の引数型にメタデータを追加する方法を提供します。ローカルパラメータは、LocalParams とも呼ばれることがあります。

ローカルパラメータは、引数の接頭辞として指定されます。次のクエリ引数を例として挙げます。

q=solr rocks

このクエリ文字列にローカルパラメータの接頭辞を付けることで、標準クエリパーサにより多くの情報を提供できます。例えば、デフォルトの演算子タイプを "AND" に、デフォルトのフィールドを "title" に変更できます。

q={!q.op=AND df=title}solr rocks

これらのローカルパラメータは、"title" フィールドをデフォルトで検索する際に、"solr" と "rocks" の両方に一致する必要があるようにクエリを変更します。

ローカルパラメータの基本構文

ローカルパラメータを指定するには、変更する引数の前に以下を挿入します。

  • {! で始まります。

  • 空白で区切られた任意の数の key=value ペアを挿入します。

  • } で終了し、すぐにクエリ引数を続けます。

引数ごとにローカルパラメータの接頭辞を1つだけ指定できます。key-value ペアの値は、シングルクォートまたはダブルクォートで囲むことができ、引用符で囲まれた文字列内ではバックスラッシュエスケープが機能します。

クエリタイプの短縮形

ローカルパラメータの値が名前なしで表示される場合、暗黙的に "type" という名前が付けられます。これにより、クエリ文字列を解析する際に使用するクエリパーサのタイプを短縮形で表現できます。したがって

q={!dismax qf=myfield}solr rocks

は、次と同等です。

q={!type=dismax qf=myfield}solr rocks

"type" が明示的にも暗黙的にも指定されていない場合、標準クエリパーサがデフォルトで使用されます。したがって

fq={!df=summary}solr rocks

は、次と同等です。

fq={!type=lucene df=summary}solr rocks

v キーを使用したパラメータ値の指定

ローカルパラメータ内のvという特別なキーは、そのパラメータの値を指定する別の方法です。

q={!dismax qf=myfield}solr rocks

は、次と同等です。

q={!type=dismax qf=myfield v='solr rocks'}

パラメータ間接参照

パラメータ間接参照または間接参照を使用すると、直接指定するのではなく、別の引数の値を使用できます。これにより、クエリを簡素化したり、ユーザー入力とクエリパラメータを分離したり、フロントエンドの GUI パラメータとsolrconfig.xmlで設定されたデフォルト値を分離したりできます。

q={!dismax qf=myfield}solr rocks

は、次と同等です。

q={!type=dismax qf=myfield v=$qq}&qq=solr rocks