java操作solr实现查询功能的实例

时间:2022-05-25 23:45:06

一、封装的查询方法

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
/**
* solr查询方法
* @param client solr客户端
* @param query solr查询对象
* @return list集合
* @throws solrserverexception
* @throws ioexception
*/
public static list<map<string, object>> getsolrquery(httpsolrclient client, solrquery query) throws solrserverexception, ioexception{
list<map<string, object>> list = null;
//执行查询并返回结果
queryresponse resp = client.query(query);
solrdocumentlist results = resp.getresults();
//获取查询到的数据总量
long numfound = results.getnumfound();
//判断总量是否大于0,
if(numfound <= 0) {
//如果小于0,表示未查询到任何数据,返回null
return null;
}else {
//如果大于0,表示有数据
//创建list存储每条数据
list = new arraylist<>();
//遍历结果集
for (solrdocument doc : results) {
//得到每条数据的map集合
map<string, object> map = doc.getfieldvaluemap();
//添加到list
list.add(map);
}
//返回list集合
return list;
}
}

二、主函数

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
public static void main(string[] args) throws solrserverexception, ioexception {
//创建solr客户端连接
httpsolrclient hsc = new httpsolrclient.builder(solr_url).build();
//创建查询对象
solrquery query = new solrquery();
//设置查询全部数据的条件
//query.setquery("*:*");
query.setquery("id:1");
 
list<map<string, object>> list = getsolrquery(hsc, query);
if(list == null) {
system.out.println("未查询到任何结果");
return;
}
for (map<string, object> map : list) {
iterator<string> it = map.keyset().iterator();
while(it.hasnext()) {
string key = it.next();
object value = map.get(key);
system.out.println(key+"----"+value);
}
system.out.println("=======================================");
}

三、solr_url

//注这是一个人正确的url地址

java操作solr实现查询功能的实例

如果url后边不加表会报如下错误:

java操作solr实现查询功能的实例

以上这篇java操作solr实现查询功能的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持服务器之家。

原文链接:http://www.cnblogs.com/li-zx/archive/2017/11/16/7845904.html