您的位置:首页 > 其它

solrj 查询SolrServer的一般流程

2012-08-17 15:15 176 查看
程序举例:

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();
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息