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)文章
SpringBoot項(xiàng)目如何添加2FA雙因素身份認(rèn)證
雙因素身份驗(yàn)證2FA是一種安全系統(tǒng),要求用戶提供兩種不同的身份驗(yàn)證方式才能訪問(wèn)某個(gè)系統(tǒng)或服務(wù),國(guó)內(nèi)普遍做短信驗(yàn)證碼這種的用的比較少,不過(guò)在國(guó)外的網(wǎng)站中使用雙因素身份驗(yàn)證的還是很多的,這篇文章主要介紹了SpringBoot項(xiàng)目如何添加2FA雙因素身份認(rèn)證,需要的朋友參考下2024-04-04IntelliJ Plugin 開(kāi)發(fā)之添加第三方j(luò)ar的示例代碼
這篇文章主要介紹了IntelliJ Plugin 開(kāi)發(fā)之添加第三方j(luò)ar的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09詳解java實(shí)現(xiàn)遍歷二叉樹(shù)的三種情況
這篇文章主要介紹了java實(shí)現(xiàn)遍歷二叉樹(shù)的三種情況,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-04-04springboot整合vue項(xiàng)目(小試牛刀)
這篇文章主要介紹了springboot整合vue項(xiàng)目(小試牛刀),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-09-09Java中l(wèi)ist集合為空或?yàn)閚ull的區(qū)別說(shuō)明
這篇文章主要介紹了Java中l(wèi)ist集合為空或?yàn)閚ull的區(qū)別說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-11-11通過(guò)實(shí)例了解Java jdk和jre的區(qū)別
這篇文章主要介紹了通過(guò)實(shí)例了解Java jdk和jre的區(qū)別,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-05-05Eclipse中導(dǎo)入Maven Web項(xiàng)目并配置其在Tomcat中運(yùn)行圖文詳解
這篇文章主要介紹了Eclipse中導(dǎo)入Maven Web項(xiàng)目并配置其在Tomcat中運(yùn)行圖文詳解,需要的朋友可以參考下2017-12-12Spring Boot如何配置內(nèi)置Tomcat的maxPostSize值
這篇文章主要介紹了Spring Boot如何配置內(nèi)置Tomcat的maxPostSize值方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-08-08