0

Solrj (Tomcat を実行) を介して 25 ドキュメントの Solr (3.6) インデックス内のすべてを選択する際に問題が発生しています。

public static void main(String[] args) throws MalformedURLException, SolrServerException { 

        SolrServer solr = new HttpSolrServer("http://localhost:8080/solr");
        ModifiableSolrParams parameters = new ModifiableSolrParams();
        parameters.set("?q", "*:*");
        parameters.set("wt", "json");

        QueryResponse response = solr.query(parameters);
            System.out.println(response); 
    }

私が得る結果は次のとおりです。

{responseHeader={status=0,QTime=0,params={?q=*:*,wt=javabin,version=2}},response={numFound=0,start=0,docs=[]}}

また、「?」を取ると parameters.set("?q", "*:*");コンパイルを終了しないとタイムアウトになります。交換しても同じです

"*:*"

だけで

"*"

また、私はparameters.set("qt", "/select");無駄にしようとしました。

Solrj を使用してすべてを選択し、実際に結果を得るにはどうすればよいでしょうか?

4

3 に答える 3

2

なぜこれが機能するのかはわかりませんが、100のアイデアに失敗した後、これは次のようになりました。

public static void main(String[] args) throws MalformedURLException, SolrServerException { 

        SolrServer solr = new HttpSolrServer("http://localhost:8080/solr");
        ModifiableSolrParams parameters = new ModifiableSolrParams();
          parameters.set("q", "*:*"); //query everything thanks to user1452132!
          parameters.set("facet", true);//without this I cant select all
          parameters.set("fl", "id");//send back just the id values
          parameters.set("wt", "json");//Id like this in json format please

        QueryResponse response = solr.query(parameters);
            System.out.println(response); 
    }

これが誰かを助けることを願っています。

于 2012-06-26T14:17:28.667 に答える
1

パラメータとして「q」を使用する必要があり、次の構文が正しい構文です。

parameters.set("?q", "*:*");

「?q」で返す理由は、実行するクエリがないため、高速に返されるためです。

まず、ブラウザでテストしてください。大きな結果セットを返さないように、返す行数を設定することもできます。

parameters.set("rows", 5);

solr クエリが返されたら、結果をページ分割する必要があります。大規模なコレクションがある場合、一度にすべてを取得することはできません。

于 2012-06-21T19:51:39.177 に答える
0

SolrServer オブジェクトを参照するときはいつでも、コアも指定するようにしてください。つまり、次のように記述します。

SolrServer solr = new HttpSolrServer("http://localhost:8080/solr/collection1");

ここで、collection1 は使用するコアの名前です。

于 2013-04-12T08:04:45.217 に答える