solrj 查询SolrServer的一般流程

6 篇文章 0 订阅

程序举例:

package cn.wzb;
/**
 * @author wang.zb
 */

import org.apache.solr.client.solrj.SolrQuery;
import org.apache.solr.client.solrj.SolrServer;
import org.apache.solr.client.solrj.SolrServerException;
import org.apache.solr.client.solrj.impl.HttpSolrServer;
import org.apache.solr.client.solrj.response.QueryResponse;

public class TestQuery {	
	public static void main(String[] args) {
				//实例化SolrServer,以获取与solrServer的通信
				SolrServer solrServer = new HttpSolrServer("http://localhost:8983/solr");
				
				//创建查询参数以及设定的查询参数
				SolrQuery params = new SolrQuery();
				params.set("q", "*:*");
				
				//查询并获取相应的结果!
				QueryResponse response = null;
				try {
					response = solrServer.query(params);
				} catch (SolrServerException e) {
					System.err.println(e.getMessage());
					e.printStackTrace();
				} catch (Exception e) {
					System.err.println(e.getMessage());
					e.printStackTrace();
				} finally {
					solrServer.shutdown();
				}
				
				//获取相关的查询结果
				if(response != null ){
					System.out.println("查询耗时(ms):" + response.getQTime());
					System.out.println(response.toString());			
				}				
			
				//关闭SolrServer连接实例,释放资源
				solrServer.shutdown();
	}

}

测试结果:

2012-8-17 15:20:26 org.apache.solr.client.solrj.impl.HttpClientUtil createClient
信息: Creating new http client, config:maxConnections=128&maxConnectionsPerHost=32&followRedirects=false
查询耗时(ms):0
{responseHeader={status=0,QTime=0,params={wt=javabin,q=*:*,version=2}},response={numFound=5,start=0,docs=[SolrDocument{id=no1, number=1, name=张三, grade=64.8, age=20, introduction=fooaaa, 他是一个好学生,学习优秀, 是一个中国人, text_auto=fooaaa, 他是一个好学生,学习优秀, 是一个中国人, text=fooaaa, 他是一个好学生,学习优秀, 是一个中国人, title=fooaaa, 他是一个好学生,学习优秀, 是一个中国人, title_smart=fooaaa, 他是一个好学生,学习优秀, 是一个中国人, entranceTime=Tue Jan 08 00:08:00 CST 2008, deposit=7000.0009}, SolrDocument{id=no2, number=2, name=李四, grade=54.8, age=25, introduction=baraaa,他不是一个好学生,不爱学习,是一个美国人, text_auto=baraaa,他不是一个好学生,不爱学习,是一个美国人, text=baraaa,他不是一个好学生,不爱学习,是一个美国人, title=baraaa,他不是一个好学生,不爱学习,是一个美国人, title_smart=baraaa,他不是一个好学生,不爱学习,是一个美国人, entranceTime=Sun Jan 07 00:07:00 CST 2007, deposit=9000.0009}, SolrDocument{id=no3, number=3, name=王五, grade=94.8, age=25, introduction=bazaaa,bbbfoo 他是一个好学生,学习优秀,是一个法国人, text_auto=bazaaa,bbbfoo 他是一个好学生,学习优秀,是一个法国人, text=bazaaa,bbbfoo 他是一个好学生,学习优秀,是一个法国人, title=bazaaa,bbbfoo 他是一个好学生,学习优秀,是一个法国人, title_smart=bazaaa,bbbfoo 他是一个好学生,学习优秀,是一个法国人, entranceTime=Wed Jan 05 00:05:00 CST 2005, deposit=3000.0009}, SolrDocument{id=no4, number=4, name=沈六, grade=80.8, age=30, introduction=bbbfoo 他已经毕业了,现在开始工作了, 德国人,aaabar, text_auto=bbbfoo 他已经毕业了,现在开始工作了, 德国人,aaabar, text=bbbfoo 他已经毕业了,现在开始工作了, 德国人,aaabar, title=bbbfoo 他已经毕业了,现在开始工作了, 德国人,aaabar, title_smart=bbbfoo 他已经毕业了,现在开始工作了, 德国人,aaabar, entranceTime=Tue Jan 10 00:09:00 CST 2006, deposit=90000.000788}, SolrDocument{id=no5, number=4, name=江八, grade=70.8, age=25, introduction=bbbbar 他毕业了,现在开始工作了,但是仍在认真学习,日本人 ,aaafoo, text_auto=bbbbar 他毕业了,现在开始工作了,但是仍在认真学习,日本人 ,aaafoo, text=bbbbar 他毕业了,现在开始工作了,但是仍在认真学习,日本人 ,aaafoo, title=bbbbar 他毕业了,现在开始工作了,但是仍在认真学习,日本人 ,aaafoo, title_smart=bbbbar 他毕业了,现在开始工作了,但是仍在认真学习,日本人 ,aaafoo, entranceTime=Wed Jan 10 00:09:00 CST 2007, deposit=2343900.000788}]}}

参考:http://lucidworks.lucidimagination.com/display/solr/Common+Query+Parameters

package cn.wzb;
/**
 * @author wang.zb
 */

import org.apache.solr.client.solrj.SolrQuery;
import org.apache.solr.client.solrj.SolrServer;
import org.apache.solr.client.solrj.SolrServerException;
import org.apache.solr.client.solrj.impl.HttpSolrServer;
import org.apache.solr.client.solrj.response.QueryResponse;

public class TestQuery {	
	public static void main(String[] args) {
				//实例化SolrServer,以获取与solrServer的通信
				SolrServer solrServer = new HttpSolrServer("http://localhost:8983/solr");
				
				//创建查询参数以及设定的查询参数
				SolrQuery params = new SolrQuery();
			
				//the common parameters for all search
				params.set("q", "*:*");
				params.set("fq", "age:[20 TO 30]", "grade:[70 TO *]"); // filter query
				params.set("fl", "*,score");  // field list
				params.set("sort", "grade desc" );  //default score desc.		
				params.set("start", "0");
				params.set("rows", "10");
				params.set("timeAllowed", "30000"); //miliseconds
				//params.set("wt", "xml"); // the response writer type
				params.set("omitHeader", "true"); //default false
				params.set("cache", "false");     //default true
				
				//查询并获取相应的结果!
				QueryResponse response = null;
				try {
					response = solrServer.query(params);
				} catch (SolrServerException e) {
					System.err.println(e.getMessage());
					e.printStackTrace();
				} catch (Exception e) {
					System.err.println(e.getMessage());
					e.printStackTrace();
				} finally {
					solrServer.shutdown();
				}
				
				//获取相关的查询结果
				if(response != null ){
					System.out.println("查询耗时(ms):" + response.getQTime());
					System.out.println(response.toString());			
				}				
			
				//关闭SolrServer连接实例,释放资源
				solrServer.shutdown();
	}

}


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值