這裡分類和彙總了欣宸的全部原創(含配套原始碼):https://github.com/zq2599/blog_demos
從以上小結可以看出,在es8.x的環境下,使用Java API Client是首選,不過舊程式碼以Java REST Client居多,拿來也能在es8環境使用(通過一個api設定,讓請求的header中帶有相容資訊,es伺服器收到此資訊會以7.x模式處理請求)
再從spring視角來看如何操作es
整個系列後面的文章,少不了寫程式碼,還是提前建好工程吧,用maven建立一個父工程,後面的程式碼都放在這個父工程下面,方便jar包版本和程式碼資源的統一管理
新建名為elasticsearch-tutorials的maven工程,其pom.xml內容如下,可見非常簡單,僅僅是對jar做了些管理,再定義了一些常數,今後新增的子工程可以用到,例如SpringBoot版本為2.7.0
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.bolingcavalry</groupId>
<artifactId>elasticsearch-tutorials</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>pom</packaging>
<name>elasticsearch-tutorials</name>
<properties>
<java.version>11</java.version>
<maven.compiler.source>11</maven.compiler.source>
<maven.compiler.target>11</maven.compiler.target>
<!-- <maven-compiler-plugin.version>3.6.1</maven-compiler-plugin.version>-->
<springboot.version>2.7.0</springboot.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<elastic.version>8.2.2</elastic.version>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>co.elastic.clients</groupId>
<artifactId>elasticsearch-java</artifactId>
<version>${elastic.version}</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.12.3</version>
</dependency>
<!-- Needed only if you use the spring-boot Maven plugin -->
<dependency>
<groupId>jakarta.json</groupId>
<artifactId>jakarta.json-api</artifactId>
<version>2.0.1</version>
</dependency>
</dependencies>
</dependencyManagement>
</project>