java操作solr實(shí)現(xiàn)查詢功能的實(shí)例
一、封裝的查詢方法
/** * 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; //執(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存儲每條數(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)建查詢對象 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
//注這是一個人正確的url地址
如果url后邊不加表會報(bào)如下錯誤:
以上這篇java操作solr實(shí)現(xiàn)查詢功能的實(shí)例就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
SpringBoot項(xiàng)目如何添加2FA雙因素身份認(rèn)證
雙因素身份驗(yàn)證2FA是一種安全系統(tǒng),要求用戶提供兩種不同的身份驗(yàn)證方式才能訪問某個系統(tǒng)或服務(wù),國內(nèi)普遍做短信驗(yàn)證碼這種的用的比較少,不過在國外的網(wǎng)站中使用雙因素身份驗(yàn)證的還是很多的,這篇文章主要介紹了SpringBoot項(xiàng)目如何添加2FA雙因素身份認(rèn)證,需要的朋友參考下2024-04-04IntelliJ Plugin 開發(fā)之添加第三方j(luò)ar的示例代碼
這篇文章主要介紹了IntelliJ Plugin 開發(fā)之添加第三方j(luò)ar的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09springboot整合vue項(xiàng)目(小試牛刀)
這篇文章主要介紹了springboot整合vue項(xiàng)目(小試牛刀),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-09-09Java中l(wèi)ist集合為空或?yàn)閚ull的區(qū)別說明
這篇文章主要介紹了Java中l(wèi)ist集合為空或?yàn)閚ull的區(qū)別說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-11-11通過實(shí)例了解Java jdk和jre的區(qū)別
這篇文章主要介紹了通過實(shí)例了解Java jdk和jre的區(qū)別,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下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值方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-08-08