画面上に検索条件の文字列を表示せずに、特定の検索条件を引き回したい場合は ex_q パラメーターを利用できます。ex_q に指定した条件は検索キーワードの入力欄には表示されず、ページングやファセット絞り込みで画面が更新されても保持されます。
ex_q には、通常の検索キーワード(q)と同じクエリー構文(field:value 形式、フレーズ、範囲指定、OR などの演算子)を記述できます。指定した条件は q の条件と既定では AND で結合されて検索が実行されます。つまり ex_q の条件に一致しないドキュメントは検索結果から除外されます。
利用方法
検索を実行する際(たとえば検索フォームなど)に、hidden フォームフィールドまたは URL のクエリーパラメーターとして ex_q の値を付加して検索を実行します。これにより、条件を画面に表示することなく検索できます。
ex_q は複数指定できます。次の例のように複数の ex_q を渡すと、それぞれが検索条件として追加されます(空の値や重複した値は無視されます)。
ページング時の保持
ページング(次ページ・前ページなど)やファセット絞り込みのリンクには、Fess が自動的に ex_q の値を付加します。そのため、これらの操作で画面が更新されても ex_q の条件は保持されます。
一方、標準の検索キーワード入力欄(検索ボックス)からキーワードを入力して再検索した場合、ex_q は引き継がれません。検索ボックス経由でも条件を保持したい場合は、独自の検索フォームに ex_q の hidden フィールドを用意し、検索のたびに ex_q を送信してください。
注釈
ex_qの各値の長さがquery.max.length(既定値: 1000 文字)を超えた場合、その値はエラーにならず無視されます。ex_qは Web 画面の検索だけでなく、検索 API(/api/v2)でも利用できます。API では、1 リクエストあたりのex_qの要素数の上限(api.v2.param.max.array.size、既定値: 100)と、各要素の長さの上限(api.v2.param.max.length、既定値: 1000 文字)が適用されます。