2011-10-19 111 views
1

如何编写一个休息Web服务来查询来自java中solr服务器的数据。我有一个java代码Solr的Web服务从索尔检索数据

CommonsHttpSolrServer server = null; 

     try 
     { 
      server = new CommonsHttpSolrServer("http://localhost:8080/solr/"); 
     } 
     catch(Exception e) 
     { 
      e.printStackTrace(); 
     } 

     SolrQuery query = new SolrQuery(); 
     query.setQuery(solrquery); 
     query.set("rows",1000); 
     // query.setQueryType("dismax"); 
     // query.setFacet(true); 
    // query.addFacetField("lastname"); 
    // query.addFacetField("locality4"); 
    // query.setFacetMinCount(2); 
     // query.setIncludeScore(true); 

     try 
     { 
      QueryResponse qr = server.query(query); 

      SolrDocumentList sdl = qr.getResults(); 

我需要通过采取ID作为查询参数来获取Web服务相同的功能来查询。

回答

1

如果你只是想查询作为参数传递给Web服务通过ID -

String id = "100145"; 
    String url = "http://localhost:8080/solr/core_name"; // core name needed if using multicore support 
    CommonsHttpSolrServer solrServer; 
    try { 
     solrServer = new CommonsHttpSolrServer(url); 
     ModifiableSolrParams qparams = new ModifiableSolrParams(); 
     qparams.add("q", "id:"+id); 
     QueryResponse qres = solrServer.query(qparams); 
     SolrDocumentList results = qres.getResults(); 
     SolrDocument doc = results.get(0); 
     System.out.println(doc.getFieldValue("id")); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
+0

我想写一个REST Web服务不是一个预先的Java应用程序 – pavan

+2

此代码放在web服务。你可以找到很多关于编写简单的Web服务和暴露它的文章。 – Jayendra

+0

我得到了一个答案,谢谢大家 – pavan