solr 测试

	public static void main(String[] args) throws  Exception {
		SolrServer server = new HttpSolrServer("http://localhost:8080/solr/db");
		//SolrServer server = new CommonsHttpSolrServer( "http://localhost:8080/solr/db" ); 
		SolrQuery params = new SolrQuery();
        params.set("q", "nickname:baoyou");
        params.set("start", 0);
        params.set("rows", Integer.MAX_VALUE);
        params.set("sort", "userid asc"); 
        params.set("fl", "*,score");
        
        QueryResponse response = null;
        SolrDocumentList list = null;
        try {
            response = server.query(params);
        } catch (SolrServerException e) {
            e.printStackTrace();
        }
        
        if(response!=null){
            System.out.println("Search Results: ");
             list = response.getResults();
            System.out.println(list.size());
            for (int i = 0; i < list.size(); i++) {
                System.out.println(list.get(i));
            }
        }
        
        JSONArray jsonArray = new JSONArray();
        for (Iterator<SolrDocument> it = list.iterator(); it.hasNext(); ) {  
            SolrDocument document = it.next();  
            JSONObject jsonObject = new JSONObject();  
            for(Iterator<Entry<String, Object>> it2 = document.iterator(); it2.hasNext();) {  
               Entry<String, Object> entry = it2.next();  
               try {  
                  jsonObject.put(entry.getKey(), entry.getValue());  
               } catch (JSONException e) {  
                  throw new  Exception("can not convert solr data to json", e);  
               }  
            }  
            jsonArray.put(jsonObject);  
         }  
        System.out.println(jsonArray.toString());
	}

 

 



 

  •  获取solrserver的实例

            

Java代码     收藏代码
  1. SolrServer server = getSolrServer();  
  •    构造 SolrQuery

     

Java代码     收藏代码
  1. SolrQuery query = new SolrQuery();  
  2. query.setQuery( "*:*" );  
  3. query.addSortField( "price", SolrQuery.ORDER.asc );  
  •    向服务器发出查询请求

    

Java代码     收藏代码
  1. QueryResponse rsp = server.query( query );     
  •    获取结果。

    

Java代码     收藏代码
  1. SolrDocumentList docs = rsp.getResults();  
  •    想要以javabean的方式获取结果,那么这个javabean必须像之前的例子一样有java注释。
    Java代码     收藏代码
    1. List<Item> beans = rsp.getBeans(Item.class);  
     

    高级用法

       solrJ 提供了一组API,来帮助我们创建查询,下面是一个faceted query的例子。

Java代码     收藏代码
  1. SolrServer server = getSolrServer();  
  2.  SolrQuery solrQuery = new  SolrQuery().  
  3.                setQuery("ipod").  
  4.                setFacet(true).  
  5.                setFacetMinCount(1).  
  6.                setFacetLimit(8).  
  7.                addFacetField("category").  
  8.                addFacetField("inStock");    
  9.  QueryResponse rsp = server.query(solrQuery);  

 所有的 setter/add 方法都是返回它自己本身的实例,所以就像你所看到的一样,上面的用法是链式的

捐助开发者

在兴趣的驱动下,写一个免费的东西,有欣喜,也还有汗水,希望你喜欢我的作品,同时也能支持一下。 当然,有钱捧个钱场(右上角的爱心标志,支持支付宝和PayPal捐助),没钱捧个人场,谢谢各位。



 
 
 谢谢您的赞助,我会做的更好!

猜你喜欢

转载自knight-black-bob.iteye.com/blog/2216343