8244 发表于 2016-12-14 09:05:47

solr 测试

public static void main(String[] args) throwsException {
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 newException("can not convert solr data to json", e);
}
}
jsonArray.put(jsonObject);
}
System.out.println(jsonArray.toString());
}
  

 
  

 


[*]
 获取solrserver的实例

Java代码  





[*]SolrServer server = getSolrServer();  




[*]   构造 SolrQuery

Java代码  





[*]SolrQuery query = new SolrQuery();  
[*]query.setQuery( "*:*" );  
[*]query.addSortField( "price", SolrQuery.ORDER.asc );  




[*]   向服务器发出查询请求

Java代码  





[*]QueryResponse rsp = server.query( query );     




[*]   获取结果。

Java代码  





[*]SolrDocumentList docs = rsp.getResults();  




[*]   想要以javabean的方式获取结果,那么这个javabean必须像之前的例子一样有java注释。
Java代码  





[*]List<Item> beans = rsp.getBeans(Item.class);  



 

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

Java代码  





[*]SolrServer server = getSolrServer();  
[*] SolrQuery solrQuery = new  SolrQuery().  
[*]               setQuery("ipod").  
[*]               setFacet(true).  
[*]               setFacetMinCount(1).  
[*]               setFacetLimit(8).  
[*]               addFacetField("category").  
[*]               addFacetField("inStock");    
[*] QueryResponse rsp = server.query(solrQuery);  


  所有的 setter/add 方法都是返回它自己本身的实例,所以就像你所看到的一样,上面的用法是链式的
页: [1]
查看完整版本: solr 测试