elasticsearch版本不同,批量查詢也不相同
網上搜到批量查詢可以通過TransportClient實現,但官方推薦使用RestHighLevelClient實現
注意:
We plan on deprecating the TransportClient in Elasticsearch 7.0 and removing it completely in 8.0. Instead, you should be using the Java High Level REST Client, which executes HTTP requests rather than serialized Java requests.
查詢最新的RestHighLevelClient api文件
MultiSearchRequest request = new MultiSearchRequest(); SearchRequest firstSearchRequest = new SearchRequest(); SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder(); searchSourceBuilder.query(QueryBuilders.matchQuery("user", "kimchy")); firstSearchRequest.source(searchSourceBuilder); request.add(firstSearchRequest); SearchRequest secondSearchRequest= new SearchRequest(); searchSourceBuilder = new SearchSourceBuilder(); searchSourceBuilder.query(QueryBuilders.matchQuery("user", "luca")); secondSearchRequest.source(searchSourceBuilder); request.add(secondSearchRequest); MultiSearchResponse response = client.msearch(request, RequestOptions.DEFAULT);
但嘗試發現,沒有msearch這個方法,發現版本為6.1的 不支援這個方法
SearchRequestBuilder srb1 = client .prepareSearch().setQuery(QueryBuilders.queryStringQuery("elasticsearch")).setSize(1); SearchRequestBuilder srb2 = client .prepareSearch().setQuery(QueryBuilders.matchQuery("name", "kimchy")).setSize(1); MultiSearchResponse sr = client.prepareMultiSearch() .add(srb1) .add(srb2) .get(); // You will get all individual responses from MultiSearchResponse#getResponses() long nbHits = 0; for (MultiSearchResponse.Item item : sr.getResponses()) { SearchResponse response = item.getResponse(); nbHits += response.getHits().getTotalHits(); }
只能使用TransportClient來實現
import java.io.IOException; import java.net.InetAddress; import org.elasticsearch.action.search.MultiSearchResponse; import org.elasticsearch.action.search.MultiSearchResponse.Item; import org.elasticsearch.action.search.SearchRequest; import org.elasticsearch.client.transport.TransportClient; import org.elasticsearch.common.settings.Settings; import org.elasticsearch.common.transport.TransportAddress; import org.elasticsearch.search.builder.SearchSourceBuilder; import org.elasticsearch.transport.client.PreBuiltTransportClient; public class App4 { @SuppressWarnings("resource") public static void main(String[] args) throws IOException { TransportClient client=new PreBuiltTransportClient(Settings.EMPTY) .addTransportAddress(new TransportAddress(InetAddress.getByName("127.0.0.1"), 9300)); //1st ES Node host and port SearchRequest req=new SearchRequest("person"); SearchSourceBuilder builder=new SearchSourceBuilder(); builder.size(10); req.source(builder); SearchRequest req1=new SearchRequest("posts"); SearchSourceBuilder builder1=new SearchSourceBuilder(); builder.size(10); req.source(builder1); MultiSearchResponse bulkResponse=client.prepareMultiSearch() .add(req) .add(req1) .get(); for (Item item : bulkResponse.getResponses()) { if (item.isFailure()) { System.out.println(item.getFailureMessage()); }else { System.out.println("-----------------------------------------------------------------------"); System.out.println(item.getResponse().toString()); } } /**** Done ****/ System.out.println("Done"); } }
相關推薦
elasticsearch版本不同,批量查詢也不相同
網上搜到批量查詢可以通過TransportClient實現,但官方推薦使用RestHighLevelClient實現 注意: We plan on deprecating the TransportClient in Elasticsearch 7.0 and removing it complete
在Windows Server 2008 R2 Server中,連接其他服務器的數據庫遇到“未啟用當前數據庫的 SQL Server Service Broker,因此查詢通知不受支持。如果希望使用通知,請為此數據庫啟用 Service Broker ”
lba pos 數據庫名 nbsp bsp enable 輸入 images logs 項目代碼和數據庫部署在不同的Windows Server 2008 R2 Server中,錯誤日誌顯示如下: "未啟用當前數據庫的 SQL Server Service Broker,因
人工智能風口下,PHP已過時,Java地位也不保了!
數據分析 課程 就業市場 jsp 工程師 項目 兼容 世界 階段 PHP 從誕生到現在已經有 20 多年歷史,從 Web 時代興起到移動互聯網退潮,互聯網領域各種編程語言和技術層出不窮, Node.js 、 GO 、 Python 不斷地在挑戰 PHP 的地位。這些技術的推
Location許可權,因系統版本不同,6.0許可權對話方塊沒有,7.0,8.0正常,開發時要注意
1、一個獲取Location許可權引發的刺激,就這三個Location許可權 <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <uses-permission an
解決在Windows下elasticsearch啟動失敗,報${ES_TMPDIR}找不到的問題
在Windows下elasticsearch啟動失敗,報${ES_TMPDIR}找不到問題。 【日誌】 [2018-03-25T16:11:34,144][WARN ][o.e.b.Natives &
java redis通過key模糊刪除,批量刪除,批量查詢相關資料
@RunWith(SpringRunner.class) @SpringBootTest public class RedisTest { @Autowired private StringRedisTemplate stringRedisTemplate; @Aut
一起來學大資料|Spring的事務管理,一分錢也不能少
之前我們講過spring是一站式框架,我們已經學習了spring框架簡單的資料操作。今天我們一起來看看spring針對dao層提供的解決技術jdbcTemplate。我們直接以銀行轉賬為例,完成我們資料庫的連線和事務管理。 JdbcTemplate 1、準備工作
限制input框只能輸入數字,加減號也不可以輸入
例子:html程式碼 <input type="number" id="assetId" required name="assetId" value="${entity.assetId}" onblur="javascript:setDispatchTitle();"
模仿事物,一個功能執行不成功時,另一個也不能執行
double d = 0; double f = 1; double g = d / f;
sourceInsight打不開,解除安裝重灌也不能用,重啟也不能用的完美解決方法
sourceInsight莫名其妙就打不開,解除安裝重灌也不能用,重啟也不能用的完美解決方法: 1:解除安裝當前的sorce insight 2::刪除如下注冊表: HKEY_LOCAL_MACHINE\SOFTWARE\Source Dynamics\
程式設計師找工作心酸一幕:我年紀也不大,要的也不多,您再考慮下吧
一名網友曝光了令人心酸的一幕:坐地鐵,聽一個看著像程式設計師的哥們在打電話說,我歲數也不大,要的也不多,您再考慮下吧?是市場不好,還是年紀不好? 隨著網際網路熱潮的興起,一方面程式設計師成了各大企業爭搶的香餑餑,一方面大齡程式設計師又成了令人嫌棄的物件,
我的if else程式碼純淨無暇,一個字也不能簡化
機器之心報道,參與:劉曉坤、王淑婷、李澤南。 「我曾接手過一個程式碼,裡面是幾十個 if else 模組……」對於程式設計師們來說,遇到這樣的事情應該是苦不堪言的——很多人認為這種寫法非常難看、分支眾多、容易出 bug。最近,網友們在容器管理平臺 Kubernetes 的 GitHub 上發現了這樣
其實,前端一點也不簡單
大多人都認為前端開發是一個「相對於其他技術來說更簡單的技術」,在他們心中的前端工程師是這樣工作的: 把 Photoshop 檔案、圖片或者線框放進一個網頁; 偶爾設計 Photoshop 檔案、圖片或者線框; 用 JS 程式設計,為網頁製作動畫、過渡效果;
【Git】先commit後pull由於版本衝突,提交內容看不到的解決方法
已commit,pull版本衝突,push不成功,找到自己commit修改過的。 根據提交記錄,還原版本 git reflog 檢視提交記錄(找到commit版本號) git reset --hard HEAD版本號 還原到commit版本
用Python給網站賬號建立一個強密碼,頂尖黑客也不一定能破解!
歡迎來到使用python編寫程式碼的另一章,在本章中,我們將探索另一個網站,它將幫助我們通過解決各種與python相關的問題來提高我們的python技能。我還不知道這個網站到底是關於什麼的,在我剛剛加入這個網站之後。這個網站允許程式設計師用python建立遊戲嗎?或者它只是一個普通的網站,就像我們以
“媽媽,我不想學了”,你的回答改變孩子一生(悵然若失,說了一句話:“為什麼當初沒有人逼我?”。我不願意學,你就不讓我學啦!那時候我還小,我還不懂事,難道你也不懂事嗎。要做成一件事,就必須有延遲滿足的能力)
“媽媽,我不想學了”,你的回答改變孩子一生(組圖)新聞來源: 槽值 前兩天,送孩子去書法班的時候,在小區門口看到一位媽媽,她正拽著孩子往車裡進,孩子哭著掙扎:“我不想學舞蹈了,我不去,太累了……” 媽媽怒吼著:“你今天去也得去,不去也得給我去!” 最終,孩子還是拗不過媽媽,上了車,去學舞蹈。 我不禁想
資料庫中如何在同一張表中,複製已經存在的記錄,只有主鍵不同,其餘欄位均相同,不變
FAS_BILL_INFO表的主鍵為BILL_CODE,新生成一個new_bill_code,把old_bill_code對應的全部複製到新生成new_bill_code的記錄中; declare old_bill_code varchar2(44); --舊借據號&
多個版本jdk,修改環境變數不生效
http://www.blogjava.net/brock/archive/2015/01/06/422073.aspx 多個jdk版本之間的切換不生效,操作: 在安裝JDK1.6時(本機先安裝jdk1.6再安裝的jdk1.5),自動將java.exe、javaw.ex
百度地圖api版本不同,幾處不同
使用百度地圖,首先要了解兩個問題(我當時做的時候,遇到了,不知道現在改過了沒有) 1.由於版本的不同 1.2之前的引用 <script type="text/javascript" src="http://api.map.baidu.com/api?key=46ce
一個電腦上同時安裝多個版本JDK,設定環境變數不生效的解決方法
window下在同一臺機器上安裝多個版本jdk,修改環境變數不生效問題 現象:某臺Windows機器,先安裝了JDK1.7,然後配置了JAVA_HOME等環