2016-08-16 8 views
0

solrJを使用してsolrコレクションからすべてのdocを取得する方法を尋ねます。
1つのコードを書きましたが、エラーが発生しました
スレッド "main"の例外org.apache.solr.client.solrj.SolrServerException:リクエストに指定されたコレクションパラメータがなく、デフォルトコレクションが設定されていません。Solr/Solrjカーソル付きページ分割

String zkHostString = "linux152:2181,linuxUL:2181,linux170:2181/solr"; 
CloudSolrClient server = new CloudSolrClient(zkHostString); 
SolrQuery parameters = new SolrQuery(); 
public void cursorMark() throws IOException, SolrServerException { 
    SolrQuery parameters = new SolrQuery();  
    QueryResponse response = new QueryResponse(); 
    response = server.query(parameters); 
    parameters.set("q",":"); 
    parameters.set("qt","/select"); 
    parameters.setParam("wt","json"); 
    parameters.set("collection", "RetailDev_Protocol"); 
    int fetchSize = 2; 
    parameters.setRows(fetchSize); 
    String cursorMark = CursorMarkParams.CURSOR_MARK_START; 
    boolean done = false; 
    while (! done) { 
     parameters.set(CursorMarkParams.CURSOR_MARK_PARAM, cursorMark); 

     long offset = 0; 
     long totalResults = response.getResults().getNumFound(); 

     while (offset < totalResults) 
     { 
      parameters.setStart((int) offset); 

      try { 
      for (SolrDocument doc : server.query(parameters).getResults()) 
       { 
        log.info((String) doc.getFieldValue("title")); 
       } 
     } catch (SolrServerException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 

      offset += fetchSize; 
     } 

    String nextCursorMark = (response).getNextCursorMark(); 



} 
    SolrDocumentList list = response.getResults(); 
    System.out.println(list.toString()); 
    } 
+0

Solrで正しくページ分割を実装するのはかなり難しく、私はこの記事を書いています。http://stackoverflow.com/questions/16992296/solr-solrj-pagination/37648027#37648027 – freedev

答えて

1

次の方法であなたのコレクションを設定する必要があります。そうでない場合、あなたは、あなたの質問に指定されたエラーを取得し

server.setDefaultCollection("<MY_COLLECTION"); 

+0

ありがとう! AR1それは働いた。 – shalu

+0

偉大な@shalu、答えを受け入れるか、または上に投票してください。 – AR1