一、封裝的查詢(xún)方法
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查詢(xún)方法 * @param client solr客戶(hù)端 * @param query solr查詢(xún)對(duì)象 * @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 ; //執(zhí)行查詢(xún)并返回結(jié)果 queryresponse resp = client.query(query); solrdocumentlist results = resp.getresults(); //獲取查詢(xún)到的數(shù)據(jù)總量 long numfound = results.getnumfound(); //判斷總量是否大于0, if (numfound <= 0 ) { //如果小于0,表示未查詢(xún)到任何數(shù)據(jù),返回null return null ; } else { //如果大于0,表示有數(shù)據(jù) //創(chuàng)建list存儲(chǔ)每條數(shù)據(jù) list = new arraylist<>(); //遍歷結(jié)果集 for (solrdocument doc : results) { //得到每條數(shù)據(jù)的map集合 map<string, object> map = doc.getfieldvaluemap(); //添加到list list.add(map); } //返回list集合 return list; } } |
二、主函數(shù)
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 { //創(chuàng)建solr客戶(hù)端連接 httpsolrclient hsc = new httpsolrclient.builder(solr_url).build(); //創(chuàng)建查詢(xún)對(duì)象 solrquery query = new solrquery(); //設(shè)置查詢(xún)?nèi)繑?shù)據(jù)的條件 //query.setquery("*:*"); query.setquery( "id:1" ); list<map<string, object>> list = getsolrquery(hsc, query); if (list == null ) { system.out.println( "未查詢(xún)到任何結(jié)果" ); 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
//注這是一個(gè)人正確的url地址
如果url后邊不加表會(huì)報(bào)如下錯(cuò)誤:
以上這篇java操作solr實(shí)現(xiàn)查詢(xún)功能的實(shí)例就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持服務(wù)器之家。
原文鏈接:http://www.cnblogs.com/li-zx/archive/2017/11/16/7845904.html