java操作elasticsearch實現前綴查詢、wildcard、fuzzy模糊查詢、ids查詢

1、前綴查詢(prefix)

//prefix前綴查詢
        @Testpublic void test15() throws UnknownHostException {//1、指定es集群  cluster.name 是固定的key值,my-application是ES集群的名稱Settings settings = Settings.builder().put("cluster.name", "my-application").build();//2.創建訪問ES服務器的客戶端TransportClient client = new PreBuiltTransportClient(settings)//獲取es主機中節點的ip地址及端口號(以下是單個節點案例).addTransportAddress(new TransportAddress(InetAddress.getByName("192.168.1.94"), 9300));//prefixQuery 第一個參數為字段名,后面是以zhao開頭的條件進行查詢QueryBuilder builder = QueryBuilders.prefixQuery("name", "zhao");SearchResponse response = client.prepareSearch("lib3").setQuery(builder).get();SearchHits hits = response.getHits();for(SearchHit hit:hits) {System.out.println(hit.getSourceAsString());//將獲取的值轉換成map的形式Map<String, Object> map = hit.getSourceAsMap();for(String key:map.keySet()) {System.out.println(key +" key對應的值為:" +map.get(key));}}}

2、wildcard模糊查詢

//wildcard模糊查詢
    @Testpublic void test16() throws UnknownHostException {//1、指定es集群  cluster.name 是固定的key值,my-application是ES集群的名稱Settings settings = Settings.builder().put("cluster.name", "my-application").build();//2.創建訪問ES服務器的客戶端TransportClient client = new PreBuiltTransportClient(settings)//獲取es主機中節點的ip地址及端口號(以下是單個節點案例).addTransportAddress(new TransportAddress(InetAddress.getByName("192.168.1.94"), 9300));//wildcardQuery模糊查詢QueryBuilder builder = QueryBuilders.wildcardQuery("name", "zhao*");SearchResponse response = client.prepareSearch("lib3").setQuery(builder).get();SearchHits hits = response.getHits();for(SearchHit hit:hits) {System.out.println(hit.getSourceAsString());//將獲取的值轉換成map的形式Map<String, Object> map = hit.getSourceAsMap();for(String key:map.keySet()) {System.out.println(key +" key對應的值為:" +map.get(key));}}
}        

3、fuzzy模糊查詢

  說明:fuzzy才是實現真正的模糊查詢,我們輸入的字符可以是個大概,他可以根據我們輸入的文字大概進行匹配查詢,具體可看文章中的解釋和代碼,注意與wildcard模糊查詢的區別

//fuzzy模糊查詢(輸入的值輸入個大概也可以查詢出來)
        @Testpublic void test17() throws UnknownHostException {//1、指定es集群  cluster.name 是固定的key值,my-application是ES集群的名稱Settings settings = Settings.builder().put("cluster.name", "my-application").build();//2.創建訪問ES服務器的客戶端TransportClient client = new PreBuiltTransportClient(settings)//獲取es主機中節點的ip地址及端口號(以下是單個節點案例).addTransportAddress(new TransportAddress(InetAddress.getByName("192.168.1.94"), 9300));//fuzzyQuery模糊查詢QueryBuilder builder = QueryBuilders.fuzzyQuery("name", "chagge");SearchResponse response = client.prepareSearch("lib3").setQuery(builder).get();SearchHits hits = response.getHits();for(SearchHit hit:hits) {System.out.println(hit.getSourceAsString());//將獲取的值轉換成map的形式Map<String, Object> map = hit.getSourceAsMap();for(String key:map.keySet()) {System.out.println(key +" key對應的值為:" +map.get(key));}}}            //typeQuery類型查詢
        @Testpublic void test18() throws UnknownHostException {//1、指定es集群  cluster.name 是固定的key值,my-application是ES集群的名稱Settings settings = Settings.builder().put("cluster.name", "my-application").build();//2.創建訪問ES服務器的客戶端TransportClient client = new PreBuiltTransportClient(settings)//獲取es主機中節點的ip地址及端口號(以下是單個節點案例).addTransportAddress(new TransportAddress(InetAddress.getByName("192.168.1.94"), 9300));//typeQuery類型查詢QueryBuilder builder = QueryBuilders.typeQuery("blog");SearchResponse response = client.prepareSearch("index1").setQuery(builder).get();SearchHits hits = response.getHits();for(SearchHit hit:hits) {System.out.println(hit.getSourceAsString());//將獲取的值轉換成map的形式Map<String, Object> map = hit.getSourceAsMap();for(String key:map.keySet()) {System.out.println(key +" key對應的值為:" +map.get(key));}}}        

4、ids查詢

  說明:根據多個id值進行查詢

//idsQuery id查詢(可以同時根據多個id進行查詢)
        @Testpublic void test19() throws UnknownHostException {//1、指定es集群  cluster.name 是固定的key值,my-application是ES集群的名稱Settings settings = Settings.builder().put("cluster.name", "my-application").build();//2.創建訪問ES服務器的客戶端TransportClient client = new PreBuiltTransportClient(settings)//獲取es主機中節點的ip地址及端口號(以下是單個節點案例).addTransportAddress(new TransportAddress(InetAddress.getByName("192.168.1.94"), 9300));//idsQuery id查詢QueryBuilder builder = QueryBuilders.idsQuery("1","2");SearchResponse response = client.prepareSearch("lib3").setQuery(builder).get();SearchHits hits = response.getHits();for(SearchHit hit:hits) {System.out.println(hit.getSourceAsString());//將獲取的值轉換成map的形式Map<String, Object> map = hit.getSourceAsMap();for(String key:map.keySet()) {System.out.println(key +" key對應的值為:" +map.get(key));}}}    

下一篇博客本人將書寫java操作elasticsearch實現聚合查詢。對后期博客感興趣的朋友可以關注交流,轉發請說明出處,本人的博客地址為:https://www.cnblogs.com/chenyuanbo/

技術在于交流!

?

轉載于:https://www.cnblogs.com/chenyuanbo/p/10296845.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/449616.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/449616.shtml
英文地址,請注明出處:http://en.pswp.cn/news/449616.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

tushare查看a股是否跌到位

#%%#獲取上證指數歷史行情數據#獲取上證指數歷史行情數據 import tushare as ts import pandas as pd # 設置token&#xff0c;只需要在第一次調用或者token失效時設置 # 設置完成后&#xff0c;之后就不再需要這一個命令了 ts.set_token() pro ts.pro_api() df_daily pro.in…

為什么我要轉載文章?

在csdn上很多年&#xff0c;學習了許多&#xff0c;也教了人許多&#xff0c;但最近&#xff0c;大家發現&#xff0c;我轉載了大量文章&#xff0c;而很少原創文章&#xff0c;真正的有水平且自己一個字一個字敲鍵盤出來的&#xff0c;1000字要三四個小時&#xff0c;如果包含…

Docker 從Dockerfile 構建鏡像 :build 命令的用法

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 Dockerfile 創建完成后&#xff0c;可以使用 docker build 命令根據 Dockerfile 構建一個鏡像。 1. 首先準備好 Dockerfile : 2. 執行構…

(翻譯).NET應用架構

.NET應用架構 Kalyan Bandarupalli著&#xff0c;hystar翻譯 這個系列文章將幫助.NET開發人員與架構師使用最新的.NET技術設計高效的.NET應用。關于應用架構這方面雖然已有很多文章與書籍&#xff0c;但是對于設計人員理解應用設計的最佳的原則與實踐仍然是具有挑戰性的。這篇…

activity idea編寫bpmn流程文件

idea 的bpmn插件支持不好&#xff0c;1、畫流程圖&#xff0c;注意排他網關流程的條件&#xff0c;2、復制一份xml文件出來&#xff0c;頭部替換&#xff1a;<?xml version"1.0" encoding"UTF-8"?> <definitions xmlns"http://www.omg.org…

tushare寫三因子模型

CAPM模型經歷了大量的實證和應用之后&#xff0c;有證據表明&#xff0c;市場風險溢酬并不能充分解釋個別風險資產的收益率。于是很多研究者開始探索其他的因素&#xff0c;比如公司市值、PE、杠桿比例、賬面市值比等。Fama和French兩個人對于各種因素進行了全面的組合分析&…

Duplicate entry ‘XXX‘ for key

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 報錯如題&#xff1a;Duplicate entry XXX for key 意思是說有唯一約束&#xff0c;所以不能重復。 而我的情況是&#xff0c;有兩個表…

list c++template

以一個現成的模板實現了線性表的順序結構實現&#xff0c;VC6.0調試OK 請大家以開源的方式來完善這個算法 &#xff0c;以跟貼方式來添加代碼 請大家往這個下面繼續添加完整的可以運行的線性表的順序結構實現代碼 /* 線性表的順序結構實現&#xff0c;數組C實現法&#xff0c;V…

聊聊composer.lock

composer.lock 即鎖定文件 其中會存在項目中所有的依賴包&#xff0c;方便協同合作時都得到同樣的以來版本 composer install 命令從當前目錄讀取 composer.json 文件&#xff0c;處理依賴關系&#xff0c;并把依賴安裝到 vendor 目錄下。 如果當前目錄下存在 composer.lock 文…

如何保證MongoDB的安全性?

上周寫了個簡短的新聞《MongoDB裸奔&#xff0c;2億國人求職簡歷泄漏&#xff01;》&#xff1a; 根據安全站點HackenProof的報告&#xff0c;由于MongoDB數據庫沒有采取任何安全保護措施&#xff0c;導致共計202,730,434份國人求職簡歷泄漏。然后很多人評論說MongoDB躺槍了。 …

LXC是什么

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。Linux Container容器是一種內核虛擬化技術&#xff0c;可以提供輕量級的虛擬化&#xff0c;以便隔離進程和資源。LXC為Linux Container的簡…

C++ 標準庫 vector list map使用方法

[cpp] view plaincopyList&#xff08;鏈表&#xff09; List將元素按順序儲存在鏈表中. 與 向量(vectors)相比, 它允許快速的插入和刪除&#xff0c;但是隨機訪問卻比較慢.list對象函數 assign() 給list賦值 back() 返回最后一個元素 begin() 返回指向第一個元素的迭代器…

導航守衛

導航守衛 to 準備跳轉到哪個頁面 from 從哪個頁面中離開 next 函數 全局守衛 router.beforeEach((to,from,next) > {if(to.path /login || to.path /register){    next();}else{    alert(先登錄)    next(/login)} }) 組件守衛 data () {  return{   …

Django中使用Pagination的分頁范例源碼

將做工程過程重要的內容做個珍藏&#xff0c;下面代碼內容是關于Django中使用Pagination的分頁范例的代碼。 from django.core.paginator import Paginatorobjects [john, paul, george, ringo]p Paginator(objects, 2) p.count4p.num_pages2p.page_range[1, 2] page1 p.pag…

Docker:集裝箱式“運輸”在軟件上的實現

Docker是由PaaS提供商dotCloud在2013年年初創建的一款開源應用引擎&#xff0c;Docker可以自動將任何應用打包成輕量、可移植、自包涵的容器引擎。開發者構建的應用可以一次構建全平臺運行&#xff0c;包括本地開發機器&#xff0c;生產環境&#xff0c;虛擬機和云等。 Docker基…

CAMP選股

挑選五只股票&#xff1a;萬科A、中國平安、貴州茅臺、萬華化學和科大訊飛&#xff0c;然后我們以滬深300作為市場基準。import pandas as pd import tushare as ts # 獲取數據 pro ts.pro_api() wanke pro.daily(ts_code000002.SZ, start_date20170101) pingan pro.daily(t…

大二下周總結(三)

記錄時間第三周所花時間&#xff08;包括上課&#xff09;13h代碼行500博客量2所了解到的知識點html java-script java本周用在練習代碼的時間自己感覺還可以&#xff0c;由于在第二周課堂練習后覺得自己有許多不足&#xff0c;所以有了必須奮進的壓力。 除了編寫代碼能力的提高…

C讀寫ini文件

/* read/write ini file with c function file testini.c chinayaosir blog: http://blog.csdn.net/chinayaosir connect.ini [database] 此程序有些BUG 當ini文件不存在時&#xff0c;第一次建立connect.ini文件時&#xff0c; 在[database]前面會多一個空格. */ #include…

包含天,時,分,秒的倒計時

這個很基礎的東西寫的過程中出了很多小的錯誤&#xff0c;在此記錄一下。 原生的js。 結構&#xff1a; <p id"time"></p> js: <script>  var start new Date().getTime(); // 獲取開始時間  var end new Dat…

計算相關度

# 使用numpy import numpy as np R [0.01, 0.05, 0.02, -0.03] var1 np.var(R) std1 np.std(R) # # 使用pandas import pandas as pd R pd.Series([0.01, 0.05, 0.02, -0.03]) var2 R.var() std2 R.std() import pandas as pd import tushare as ts pro ts.pro_api() w…