首页 > 其他 > 详细

solr 测试

时间:2015-06-03 02:11:22      阅读:244      评论:0      收藏:0      [点我收藏+]
	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());
	}

?
bubuko.com,布布扣
?



?

?

  • ?获取solrserver的实例

????????????

Java代码? ?bubuko.com,布布扣
  1. SolrServer?server?=?getSolrServer();??

?

  • ?? 构造 SolrQuery

?????

Java代码? ?bubuko.com,布布扣
  1. SolrQuery?query?=?new?SolrQuery();??
  2. query.setQuery(?"*:*"?);??
  3. query.addSortField(?"price",?SolrQuery.ORDER.asc?);??

?

  • ?? 向服务器发出查询请求

????

Java代码? ?bubuko.com,布布扣
  1. QueryResponse?rsp?=?server.query(?query?);?????

?

  • ?? 获取结果。

????

Java代码? ?bubuko.com,布布扣
  1. SolrDocumentList?docs?=?rsp.getResults();??

?

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

??? 高级用法

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

Java代码? ?bubuko.com,布布扣
  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 方法都是返回它自己本身的实例,所以就像你所看到的一样,上面的用法是链式的

?

?

?

?

?

?

?

?

solr 测试

原文:http://knight-black-bob.iteye.com/blog/2216343

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!