日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

java pdf增删改查_如何利用Java代码操作索引库?

發(fā)布時(shí)間:2025/3/8 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java pdf增删改查_如何利用Java代码操作索引库? 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

今天是劉小愛自學(xué)Java的第161天。

感謝你的觀看,謝謝你。

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

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

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

關(guān)于SpringDataElasticsearch介紹:

學(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)目

①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):

該方式創(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)于配置文件:

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

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

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

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

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

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

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

注解@Field說明索引庫(kù)字段:

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

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

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

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

①createIndex()

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

②putMapping()

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

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

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

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

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

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

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

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

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

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

1新增索引

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

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

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

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

2查詢索引

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

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

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

最后

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

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

總結(jié)

以上是生活随笔為你收集整理的java pdf增删改查_如何利用Java代码操作索引库?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。