日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請(qǐng)做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會(huì)員:747

如何利用Java代碼操作索引庫?

 

學(xué)習(xí)計(jì)劃安排如下:

  • 學(xué)了幾天的Elasticserch,但都是它本身的知識(shí)點(diǎn),如何通過JAVA語言去操作它呢?
  • 這就好比以前學(xué)數(shù)據(jù)庫,在數(shù)據(jù)庫工具中通過sql語句也能實(shí)現(xiàn)增刪改查,而在Java中就可以通過jdbc操作數(shù)據(jù)庫。
  • 這里不學(xué)原生的Elasticsearch客戶端,而是直接學(xué)習(xí)spring提供的套件:SpringDataElasticsearch。
  • 畢竟要知道,我們以前也基本沒用原生的jdbc,而是用的框架,使用起來也簡便。

一、創(chuàng)建Demo工程

關(guān)于SpringDataElasticsearch介紹:

如何利用Java代碼操作索引庫?

 

學(xué)Java有一個(gè)繞不開的坎就是spring,就是主流的很多功能都會(huì)看到spring的影子。

我們已經(jīng)接觸過了的就有:SpringMVC、Spring、SpringBoot、SpringCloud。

今天繼續(xù)接觸Spring Data中的一個(gè)模塊。

為了更好地學(xué)習(xí),創(chuàng)建一個(gè)demo工程。

通過spring腳手架創(chuàng)建項(xiàng)目

如何利用Java代碼操作索引庫?

 

①Spring Initializr

使用idea開發(fā)工具創(chuàng)建Java項(xiàng)目有多種方式,以前就是通過Maven自行創(chuàng)建一個(gè)項(xiàng)目。

也可以通過Spring Initializr創(chuàng)建一個(gè)項(xiàng)目。

②說明項(xiàng)目名和Java版本號(hào)

項(xiàng)目名為es-demo,使用的jdk8.

③指定項(xiàng)目中需要用到的依賴

這里也就是springDataElasticsearch。

下圖也就是創(chuàng)建好后的項(xiàng)目結(jié)構(gòu)

如何利用Java代碼操作索引庫?

 

該方式創(chuàng)建的好處在于:

我們不用自己導(dǎo)入依賴了,依賴是在創(chuàng)建項(xiàng)目時(shí)指定的,也就是創(chuàng)建項(xiàng)目中的步驟③

同時(shí)關(guān)于啟動(dòng)類、配置文件都幫我們自學(xué)創(chuàng)建好了,其實(shí)無外乎就是上述三個(gè)核心關(guān)鍵步驟:啟動(dòng)類、配置文件、pom文件

該方式創(chuàng)建的壞處在于:

版本問題,項(xiàng)目中可能用的是比較舊的版本,spring創(chuàng)建的版本需要自行修改。

根據(jù)自己的需求選擇創(chuàng)建方式就好。

此外關(guān)于配置文件

如何利用Java代碼操作索引庫?

 

自行配置的是properties文件,而我們常用的是yml文件,這里將其修改成yml文件。

在配置文件中指定elasticsearch中對(duì)應(yīng)的ip+端口,也就是我們前幾天在虛擬機(jī)上安裝elasticsearch的ip和端口。

二、創(chuàng)建索引和映射

我們以前使用MySQL數(shù)據(jù)庫的時(shí)候,在Java中是實(shí)體類對(duì)應(yīng)了數(shù)據(jù)庫中的表數(shù)據(jù)。

同樣的道理,現(xiàn)在是索引庫了,在Java中也是使用實(shí)體類對(duì)應(yīng)對(duì)應(yīng)的索引庫。

如何利用Java代碼操作索引庫?

 

注解@Document說明對(duì)應(yīng)的索引庫:

  • indexName:索引庫名稱叫item。
  • type:索引庫類型docs。
  • shards:分片。
  • replicas:副本。

注解@Field說明索引庫字段:

類型有很多種,double屬于數(shù)字型,text和string屬于字符型,其中text表示分詞,string表示不分詞,上述中的keyword其實(shí)也就對(duì)應(yīng)著string。

注意images這個(gè)字段,index=false表示不需要索引,說明該字段不需要搜索功能。

如何利用Java代碼操作索引庫?

 

我們以前學(xué)數(shù)據(jù)庫的時(shí)候,在Java中操作數(shù)據(jù)庫使用到了JdbcTemplate。

現(xiàn)在是要操作索引庫,同樣的道理,也有一個(gè)ElasticsearchTemplate

①createIndex()

創(chuàng)建索引庫,參數(shù)為實(shí)體類的Class對(duì)象。

②putMApping()

說明字段映射關(guān)系,參數(shù)同上。

三、實(shí)現(xiàn)增刪改查

通過JdbcTemplate實(shí)現(xiàn)數(shù)據(jù)庫的增刪改查,索引庫中用ElasticsearchTemplate。

但是我們不用這種方式而是用其它方式。

畢竟我們現(xiàn)在操作數(shù)據(jù)庫也沒用JdbcTemplate而是常常使用通用mapper。

該方法也就類似于通用mapper。

如何利用Java代碼操作索引庫?

 

在通用mapper中我們是創(chuàng)建一個(gè)自定義接口繼承mapper接口。

再說明泛型之后,就可以直接使用這個(gè)接口完成增刪改查操作了。

同樣的道理,在這里是也是自定義一個(gè)接口繼承ElasticsearchRepository接口。

關(guān)于這個(gè)接口的繼承體系圖通過上圖也能查看到,名稱也都是見名知義的。

1新增索引

如何利用Java代碼操作索引庫?

 

saveAll方法,看它的名字也就知道了其對(duì)應(yīng)的也就是新增操作。

其中關(guān)于新增,可以添加一條數(shù)據(jù),也可以添加多條數(shù)據(jù),例子中使用的是批量操作。

注意:在正式項(xiàng)目中應(yīng)該是從數(shù)據(jù)庫這種查詢到需要實(shí)現(xiàn)搜索功能的數(shù)據(jù),再將這些數(shù)據(jù)添加到索引庫中,從而實(shí)現(xiàn)搜索功能。

我這邊為了方便是自己創(chuàng)建的偽數(shù)據(jù)。

2查詢索引

如何利用Java代碼操作索引庫?

 

findAll也就是查詢所有的數(shù)據(jù),因?yàn)槲覀兲砑恿硕鄺l數(shù)據(jù),所以查詢結(jié)果是一個(gè)集合。

增強(qiáng)for循環(huán)遍歷輸出,在控制臺(tái)上也就能查詢到新增的數(shù)據(jù)。

同樣的道理,還有deleteAll刪除索引,當(dāng)然這是都是最簡單最基礎(chǔ)的幾種api,后續(xù)更多用法再說明。

最后

行有不得反求諸己,我是@劉小愛

一個(gè)白天上班晚上學(xué)習(xí)的95后滬漂,不為其它,只為學(xué)會(huì)自律做好自己,也愿我的每日打卡能給你帶來勇氣,歡迎點(diǎn)贊關(guān)注和評(píng)論。

分享到:
標(biāo)簽:索引 Java
用戶無頭像

網(wǎng)友整理

注冊(cè)時(shí)間:

網(wǎng)站:5 個(gè)   小程序:0 個(gè)  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會(huì)員

趕快注冊(cè)賬號(hào),推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學(xué)四六

運(yùn)動(dòng)步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動(dòng)步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績?cè)u(píng)定2018-06-03

通用課目體育訓(xùn)練成績?cè)u(píng)定