ElasticSearch如何一次查詢出全部資料

2021-08-26 12:07:32 字數 1720 閱讀 1133

/**

* 查詢所有資料

** @param index 索引名稱

* @param type type 6.0後不推薦使用

* @param fields 需要顯示的字段

* @param sortfield 需要進行排序的字段

* @param highlightfield 需要高亮的字段

* @param querybuilder 查詢條件

* @return

*/public static list> searchalldata(string index, string type, string fields, string sortfield, string highlightfield,querybuilder querybuilder )

// 需要顯示的字段,逗號分隔(預設為全部字段)

if (stringutils.isnotempty(fields))

searchrequestbuilder.setfetchsource(true);

if (stringutils.isnotempty(sortfield))

//設定每批讀取的資料量

searchrequestbuilder.setsize(100);

//查詢條件

searchrequestbuilder.setquery(querybuilder);

//設定 search context 維護1分鐘的有效期

searchrequestbuilder.setscroll(timevalue.timevalueminutes(1));

//獲得首次的查詢結果

searchresponse scrollresp=searchrequestbuilder.get();

//列印的內容 可以在 elasticsearch head 和 kibana 上執行查詢

logger.info("\n{}", searchrequestbuilder);

//列印命中數量

logger.info("命中總數量:{}", scrollresp.gethits().gettotalhits());

list> sourcelist = new arraylist>();

stringbuffer stringbuffer = new stringbuffer();

do //遍歷 高亮結果集,覆蓋 正常結果集

searchhit.getsourceasmap().put(highlightfield, stringbuffer.tostring());}}

}sourcelist.add(searchhit.getsourceasmap());

}//當searchhits的陣列為空的時候結束迴圈,至此資料全部讀取完畢

} while(scrollresp.gethits().gethits().length != 0);

//刪除scroll

clearscrollrequest clearscrollrequest = new clearscrollrequest();

clearscrollrequest.addscrollid(scrollresp.getscrollid());

client.clearscroll(clearscrollrequest).actionget();

return sourcelist;

}

Elasticsearch如何更新mapping

既然已建立的 indices 無法修改,我們可以重新建立乙個新的 indices,然後將原 indices 上的資料複製到新的 indices 上,再將 alias 指向新 indices。最後,刪除原索引。引數說明 當前索引名稱 test v1 生產索引名稱 test 目標索引名稱 test v2...

如何防止ElasticSearch集群出現腦裂現象

什麼是 腦裂 現象?由於某些節點的失效,部分節點的網路連線會斷開,並形成乙個與原集群一樣名字的集群,這種情況稱為集群腦裂 split brain 現象。這個問題非常危險,因為兩個新形成的集群會同時索引和修改集群的資料。如何避免腦裂問題?避免腦裂現象,用到的乙個引數是 discovery.zen.mi...

elasticsearch如何安全重啟節點 續

大岩不燦 發表於 2015年9月21日 瀏覽 1,086 次 之前分享的一篇文章介紹了如何滾動rolling重啟elasticsearch集群。但是當資料量很大的時候,可能那種方式並不適合修改整個集群的配置。如果你無法通過api更改集群屬性,還是建議你把整個集群關閉,重啟整個集群。重啟步驟如下 1 ...