java操作solr實(shí)現(xiàn)查詢功能的實(shí)例
一、封裝的查詢方法
/**
* solr查詢方法
* @param client solr客戶端
* @param query solr查詢對(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í)行查詢并返回結(jié)果
QueryResponse resp = client.query(query);
SolrDocumentList results = resp.getResults();
//獲取查詢到的數(shù)據(jù)總量
long numFound = results.getNumFound();
//判斷總量是否大于0,
if(numFound <= 0) {
//如果小于0,表示未查詢到任何數(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ù)
public static void main(String[] args) throws SolrServerException, IOException {
//創(chuàng)建solr客戶端連接
HttpSolrClient hsc = new HttpSolrClient.Builder(SOLR_URL).build();
//創(chuàng)建查詢對(duì)象
SolrQuery query = new SolrQuery();
//設(shè)置查詢?nèi)繑?shù)據(jù)的條件
//query.setQuery("*:*");
query.setQuery("id:1");
List<Map<String, Object>> list = getSolrQuery(hsc, query);
if(list == null) {
System.out.println("未查詢到任何結(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)查詢功能的實(shí)例就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Java時(shí)間轉(zhuǎn)換成unix時(shí)間戳的方法
這篇文章主要為大家詳細(xì)介紹了Java時(shí)間轉(zhuǎn)換成unix時(shí)間戳的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-12-12
java高并發(fā)ThreadPoolExecutor類解析線程池執(zhí)行流程
這篇文章主要為大家介紹了java高并發(fā)ThreadPoolExecutor類解析線程池執(zhí)行流程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-09-09
SpringBoot中@RequestBody不能和Multipart同時(shí)傳遞的問(wèn)題解決
本文主要介紹了SpringBoot中@RequestBody不能和Multipart同時(shí)傳遞的問(wèn)題解決,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-04-04
netty-grpc一次DirectByteBuffer內(nèi)存泄露問(wèn)題
這篇文章主要介紹了netty-grpc一次DirectByteBuffer內(nèi)存泄露問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-12-12
java實(shí)現(xiàn)Fibonacci算法實(shí)例
這篇文章主要介紹了java實(shí)現(xiàn)Fibonacci算法的方法,以實(shí)例形式較為詳細(xì)的分析了java實(shí)現(xiàn)Fibonacci算法的原理與相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-09-09
Spring boot整合shiro+jwt實(shí)現(xiàn)前后端分離
這篇文章主要為大家詳細(xì)介紹了Spring boot整合shiro+jwt實(shí)現(xiàn)前后端分離,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-12-12
Maven項(xiàng)目如何查找jar包是由哪個(gè)依賴引入的
這篇文章主要介紹了Maven項(xiàng)目如何查找jar包是由哪個(gè)依賴引入的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-08-08

