1

apachesolr 検索を実行し、facetapi モジュールを介してファセットを使用している Drupal 7 Web サイトがあります。

ファセットを使用して検索を絞り込むと、すべてが完全に機能し、フィルターが検索 URL に追加されていることがわかるので、それらをリンク (既製の絞り込み検索) としてサイトの他の場所にコピーできます。

いくつかのファセット/フィルターを選択した後の apachesolr URL の例を次に示します。

search_url/search_keyword?f[0]=im_field_tag_term1%3A1&f[1]=im_field_tag_term2%3A100

search_keyword」の部分は検索するテキストで、「%3A」は「:」(コロン) でエンコードされた URL です。

この形式を知っていれば、URL の正しい形式を作成することで、既製の検索をいくつでも作成できます。完全!

ただし、これらのフィルターは、ファセット インターフェイスを使用する場合と同じように、常に AND 結合されます。特に検索 URL で、フィルター/ファセットをORするために使用できる構文があるかどうかは誰にもわかりませんか? つまり、結果が 2 つのフィルターのいずれかを含むすべてのエントリになるようにするには?

正しい方向への助けや指針を前もって感謝します!

新しい編集:

URLを介して同じ語彙内の用語をORする方法は知っていますが、異なる語彙の用語に対してどのようにそれを行うのか疑問に思っています. ;-)

4

2 に答える 2

1

Drupalでこれを行う方法をついに見つけました

fq パラメータの設定を有効にします。

  • admin/config/search/apachesolr/[your_search_page]/core_search/edit に移動するか、変更しようとしている検索ページの設定に移動します

  • [URL を使用したユーザー入力を許可する] 設定を確認します

URL 構文

  • URL の最後に次を追加します: ?fq=tid:(16 OR 38)。ここで、16 と 38 は用語 ID です。
于 2012-05-25T19:42:19.607 に答える
1

次のようなフィルタ クエリを作成できます。

fq=field1:value1 OR field2:value2

または、localparams を使用してクエリ演算子を指定することもできます。

fq={!q.op=OR}field1:value1 field2:value2

私の知る限り、これを行う簡単な方法はありません。実際、パラメータへの方法を要求するかなり古いバグがあります...ORfq

于 2012-05-10T17:36:35.313 に答える