インスタンスにいくつかの Solr コアがあり、それぞれにStandardRequestHandler
といくつかのカスタム リクエスト ハンドラが構成されています。
<requestDispatcher handleSelect="true" >
<requestParsers enableRemoteStreaming="false" multipartUploadLimitInKB="2048" />
</requestDispatcher>
...
<requestHandler name="standard" class="solr.StandardRequestHandler" default="true" />
...
<requestHandler name="/custom" class="com.example.our.package.CustomHandler" />
...
SolrJを介して両方にアクセスできるようにしたいのですが、オブジェクトのbaseUrl
プロパティを設定することによってのみこれを行うことができます。ただし、インスタンスは複数のスレッド間で共有されるため、競合状態が発生するため、HttpSolrServer
これは望ましくありません。もう 1 つの理由は、チームのコンセンサスが、単純化のためにスコープ化されていることにあることです。HttpSolrServer
HttpSolrServer
Singleton
私が試したのは次のようなものです:
HttpSolrServer server = new HttpSolrServer("http://URL_OF_SOLR:PORT/solr/");
SolrQuery query = new SolrQuery();
query.setQueryType("/core/custom");
これはカスタム ハンドラでは機能しますが/select
、少なくとも試した URL ( /core
、/core/select
、/core/
、/core/standard
) などでは、 を呼び出すとコード 400 で失敗します。
だから私の質問は次のとおりです。コアのデフォルトのリクエストハンドラーを正しく参照するには、このクエリをどのように定義すればよいですqueryType
かSolrParams
?