0

私は Solr 4.10.2 と Drupal 7.X を使用しています。Apache Solr Module Framework を動作させ、Drupal から Solr にリクエストを送信しています。現在、検索を実行すると、Drupal がクエリを作成して Solr に送信します。Solr はクエリを実行するだけで、SolrConfig.xml で構成できる内部ハンドラーを使用せずに結果を返します。

検索された用語を Drupal から (クエリを作成せずに) 送信し、Solr が SolrConfig.xml で宣言された内部ハンドラを使用してリクエストを処理し、クエリを作成してからデータを返す方法があるかどうかを知りたいですか?

この理由は、一部のフィールドの「重み」を変更することにより、検索を実行したときに一部の結果を向上させることに取り組んできたためです (完全一致を最初に検索し、あいまい検索結果を後で検索したい)。

バックオフィスから「バイアス」機能を使用して一部のフィールドをブーストできることはわかっていますが、これは私たちが達成しようとしているものにはあまりにも限定的です.

また、 hook_apachesolr_modify_query()を使用して Drupal から送信されたクエリをコード側から直接変更できることもわかっていますが、変更するコードをできるだけ少なくし、必要な結果を返すように既に構成した SolrConfig.xml /handlers を使用することを好みます。

4

1 に答える 1

0

わかりました、これを行う方法を見つけました:

Drupal からリクエストを送信する際に Solr が使用するハンドラーを選択するには、「hook_apachesolr_query_alter」関数を編集して、次のコードを追加する必要があります。

$query->addParam(‘qt’, ‘MyHandlerName’);

コードに触れずにハンドラーを切り替えることができるように、ハンドラーをバックオフィスから直接変更できるように、追加のコーディングを行いました。

于 2015-10-09T09:24:43.397 に答える