ElasticSearch的Java Rest HighLevel Client使用:

  • ES6.3.2
  • Spring Boot 2.0.4
  • Maven 3.5.4

首先強(qiáng)調(diào)一點(diǎn):使用Spring框架結(jié)合Maven進(jìn)行ES導(dǎo)入時(shí)捣炬,需要對ES版本號(hào)先行進(jìn)行聲明疗隶,否則Spring默認(rèn)版本和后續(xù)在依賴中的ES版本會(huì)報(bào)沖突

沖突報(bào)錯(cuò):Java API: java.lang.ClassNotFoundException: org.elasticsearch.common.settings.ImmutableSettings

pom修改位置:

與后續(xù)依賴的elasticsearch-rest-high-level-client版本一致。

搜索功能的Java Client

1 創(chuàng)建Client

RestHighLevelClient restHighLevelClient = new RestHighLevelClient(

 RestClient.builder(new HttpHost(hostName,port,"http"))

)

給Client中配入ES集群的ip箩退,端口。

2 構(gòu)建匹配條件

QueryBuilder queryBuilder = QueryBuilders.termsQuery("model_classification.keyword","需要人工查看","直接推送");
QueryBuilder queryBuilder_title = QueryBuilders.matchQuery("title",keyword).boost(10);

構(gòu)建了兩條匹配條件突想,第一條匹配doc中的model_classification字段沃琅,要求其內(nèi)容需要為"需要人工查看","直接推送"中的任意一條哗咆;第二條匹配doc的title字段,要求其與keyword進(jìn)行比較益眉,并設(shè)置權(quán)重10.

3 組合匹配條件

BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery();

首先創(chuàng)建bool匹配條件

boolQueryBuilder.must(queryBuilder);
boolQueryBuilder.should(queryBuilder_title);

將之前構(gòu)造的匹配條件添加到bool條件中晌柬,用must去設(shè)定必須滿足的條件,should去設(shè)置加分項(xiàng)郭脂。

3 創(chuàng)建查詢

SearchSourceBuilder sourceBuilder = new SearchSourceBuilder();
sourceBuilder.fetchSource(new String[]{"id","title","abstract","source","date"},null);
sourceBuilder.query(boolQueryBuilder);
…
sourceBuilder.sort(new ScoreSortBuilder().order(SortOrder.DESC));
sourceBuilder.sort(new FieldSortBuilder("_id").order(SortOrder.DESC));

在創(chuàng)建的查詢中可以設(shè)置需要獲取的字段年碘,需要匹配的條件等。同時(shí)可以設(shè)置排序字段展鸡,為了避免同分造成的排序振蕩現(xiàn)象屿衅,建議設(shè)置兩個(gè)字段。

4 創(chuàng)建搜索Request

SearchRequest request = new SearchRequest(indexName);
request.types(typeName);
request.searchType("dfs_query_then_fetch");
request.source(sourceBuilder);

創(chuàng)建Request莹弊,設(shè)置request針對的index和doc類型涤久,同時(shí)設(shè)定searchType并將上文構(gòu)建的查詢添加其中。

5 解析反饋結(jié)果

SearchResponse response = restHighLevelClient.search(request);
SearchHits hits = response.getHits();
for (SearchHit hit:hits) {
    Map tempSource = hit.getSourceAsMap();
…
}

通過Client發(fā)起請求并捕獲response忍弛,從response中捕捉命中响迂,然后解析命中字段,命中字段中的source為doc中的存儲(chǔ)字段细疚,其它為一些ES集群添加的一些功能性字段蔗彤,如_source等。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末疯兼,一起剝皮案震驚了整個(gè)濱河市然遏,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌镇防,老刑警劉巖,帶你破解...
    沈念sama閱讀 207,248評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件潮饱,死亡現(xiàn)場離奇詭異来氧,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)香拉,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,681評(píng)論 2 381
  • 文/潘曉璐 我一進(jìn)店門啦扬,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人凫碌,你說我怎么就攤上這事扑毡。” “怎么了盛险?”我有些...
    開封第一講書人閱讀 153,443評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵瞄摊,是天一觀的道長勋又。 經(jīng)常有香客問我,道長换帜,這世上最難降的妖魔是什么楔壤? 我笑而不...
    開封第一講書人閱讀 55,475評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮惯驼,結(jié)果婚禮上蹲嚣,老公的妹妹穿的比我還像新娘。我一直安慰自己祟牲,他們只是感情好隙畜,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,458評(píng)論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著说贝,像睡著了一般议惰。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上狂丝,一...
    開封第一講書人閱讀 49,185評(píng)論 1 284
  • 那天换淆,我揣著相機(jī)與錄音,去河邊找鬼几颜。 笑死倍试,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的蛋哭。 我是一名探鬼主播县习,決...
    沈念sama閱讀 38,451評(píng)論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼谆趾!你這毒婦竟也來了躁愿?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,112評(píng)論 0 261
  • 序言:老撾萬榮一對情侶失蹤沪蓬,失蹤者是張志新(化名)和其女友劉穎彤钟,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體跷叉,經(jīng)...
    沈念sama閱讀 43,609評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡逸雹,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,083評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了云挟。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片梆砸。...
    茶點(diǎn)故事閱讀 38,163評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖园欣,靈堂內(nèi)的尸體忽然破棺而出帖世,到底是詐尸還是另有隱情,我是刑警寧澤沸枯,帶...
    沈念sama閱讀 33,803評(píng)論 4 323
  • 正文 年R本政府宣布日矫,位于F島的核電站赂弓,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏搬男。R本人自食惡果不足惜拣展,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,357評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望缔逛。 院中可真熱鬧备埃,春花似錦、人聲如沸褐奴。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,357評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽敦冬。三九已至辅搬,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間脖旱,已是汗流浹背堪遂。 一陣腳步聲響...
    開封第一講書人閱讀 31,590評(píng)論 1 261
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留萌庆,地道東北人溶褪。 一個(gè)月前我還...
    沈念sama閱讀 45,636評(píng)論 2 355
  • 正文 我出身青樓,卻偏偏與公主長得像践险,于是被迫代替她去往敵國和親猿妈。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,925評(píng)論 2 344