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

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

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

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

 

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

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

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

關(guān)于SpringDataElasticsearch介紹:

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

 

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

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

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

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

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

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

 

①Spring Initializr

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

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

②說明項目名和Java版本號

項目名為es-demo,使用的jdk8.

③指定項目中需要用到的依賴

這里也就是springDataElasticsearch。

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

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

 

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

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

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

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

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

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

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

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

 

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

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

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

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

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

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

 

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

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

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

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

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

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

 

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

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

①createIndex()

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

②putMApping()

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

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

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

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

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

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

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

 

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

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

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

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

1新增索引

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

 

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

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

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

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

2查詢索引

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

 

findAll也就是查詢所有的數(shù)據(jù),因為我們添加了多條數(shù)據(jù),所以查詢結(jié)果是一個集合。

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

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

最后

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

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

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

網(wǎng)友整理

注冊時間:

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

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

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

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

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

答題星2018-06-03

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

全階人生考試2018-06-03

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

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

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

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

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

體育訓(xùn)練成績評定2018-06-03

通用課目體育訓(xùn)練成績評定