1

実行中の solr インスタンスがあり、ブラウザーからアクセスし、管理者を使用してクエリを実行できます。ただし、Eclipse で Java コードを介してアクセスしようとすると、次のエラーが表示されます。

Exception in thread "main" org.apache.solr.common.SolrException: Server at   http://localhost:8983/solr returned non ok status:404, message:Not Found
at org.apache.solr.client.solrj.impl.HttpSolrServer.request(HttpSolrServer.java:372)
at org.apache.solr.client.solrj.impl.HttpSolrServer.request(HttpSolrServer.java:181)
at org.apache.solr.client.solrj.request.QueryRequest.process(QueryRequest.java:90)
at org.apache.solr.client.solrj.SolrServer.query(SolrServer.java:301)
at testClass.main(testClass.java:18)

ここに私が実行しているコードがあります:

public static void main(String[] args) throws MalformedURLException, SolrServerException {
    SolrServer server = new HttpSolrServer("http://localhost:8983/solr/");
    ModifiableSolrParams params = new ModifiableSolrParams();
    params.set("myParam", "myValue");
    QueryResponse response = server.query(params);
}
4

2 に答える 2

1

2 つのエラーがあったことがわかりました。

1)私のセットアップには実際にはネストされたsolrディレクトリがあるため、別の「solr」レベルを追加する必要がありました。

2) params 変数を間違って設定していました。送信される最初の引数は "q" で、2 番目の引数は "name:value" のペアです。

更新された例には、一度に複数のパラメーターを渡すことが含まれます。

public static void main(String[] args) throws MalformedURLException, SolrServerException {
    SolrServer server = new HttpSolrServer("http://localhost:8983/solr/solr/");
    ModifiableSolrParams params = new ModifiableSolrParams();
    params.set("q", "param1:value1 AND param2:value2");
    QueryResponse response = server.query(params);
    System.out.println("response = " + response);
}
于 2013-01-07T18:21:19.520 に答える
0

そうではないでしょうか:-

 SolrServer server = new HttpSolrServer("http://localhost:8983/solr");

次のリンクで受け入れられた回答を参照してください:-

Solrj を介した Solr のクエリ: 基本

于 2013-01-07T17:11:23.150 に答える