1

新しいハンドラーを作成したsolrnetを使用していますが、「qt」やdefTypeなどの追加のパラメーターを使用せずに、標準のクエリハンドラー「select」を「new」に変更したいと考えています。

現在 「http://localhost:8080/solr/select?q= :

「http://localhost:8080/solr/new?q= :が欲しい

これが可能かどうか教えてください。

4

3 に答える 3

4

SolrNet Google グループの SolrQueryExecutor でハンドラー エンドポイントを変更するという投稿には、これを行うには、説明されているように SolrQueryExecutor を変更する必要があると記載されています。

質問: Solr インスタンスで、検索エンドポイントを「/select」から「/search」に変更しました。SolrQueryExecuter には、「/select」の DefaultHandler を返すだけの Handler プロパティがあることがわかります。これを変更してエンドポイントを使用する方法はありますか?

回答:その通りです。SolrQueryExecuter でそのプロパティを変更する必要があります。その方法は、IoC コンテナーによって異なります。たとえば、ビルトイン コンテナーを使用して、Remove() ISolrQueryExecuter を実行し、変更されたハンドラー プロパティを使用して独自のコンテナーを追加します。これは非常にまれなことです。通常は、異なるリクエスト ハンドラーをエンドポイントとしてではなく、通常の名前としてセットアップするだけで、qt パラメーターを使用していずれかを選択できます。

于 2012-11-15T12:50:43.677 に答える
1

別の要求ハンドラーを呼び出すことだけが必要な場合は、ISolrQueryExecuter のインスタンスを取得し、それに応じてハンドラーを設定するだけです。組み込みの SolrQueryExecuter を具体的なデコレータに置き換える必要はありません。

Startup.Init<T>(new SolrConnection("http://localhost:8080/solr")),

var executor = ServiceLocator.Current.GetInstance<ISolrQueryExecuter<T>>() as SolrQueryExecuter<T>;
executor.Handler = "/new";

ところで、あなたの URL にはコレクションの名前がないようです。

于 2014-07-25T01:43:07.913 に答える