一、ES 8.x 整合springBoot
1、導(dǎo)入依賴(lài)
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.12.3</version>
</dependency>
<dependency>
<groupId>co.elastic.clients</groupId>
<artifactId>elasticsearch-java</artifactId>
<version>8.7.1</version>
</dependency>
2、創(chuàng)建 ElasticsearchClient
@Configuration
public class ElasticsearchClientConfig {
@Bean
public ElasticsearchClient restHighLevelClient() {
RestClient restClient = RestClient.builder(
new HttpHost("localhost", 9200)
).build();
ElasticsearchTransport elasticsearchTransport = new RestClientTransport(restClient,new JacksonJsonpMapper());
return new ElasticsearchClient(elasticsearchTransport);
}
}
二、ES java api
1、搜索
@Resource
ElasticsearchClient elasticsearchClient;
@Test
void contextLoads() throws IOException {
// 指定索引,設(shè)置查詢(xún)語(yǔ)句
SearchRequest searchRequest =
new SearchRequest.Builder().index("demo_comment_message")
.query(Query.of(t -> t.bool(
s -> s.must(
k -> k.match(
v -> v.field("desc").query("第一"))
).must(v-> v.range(m ->m.field("diggCount").lte(JsonData.of(100))))
))).build();
// 執(zhí)行查詢(xún)語(yǔ)句
SearchResponse<Object> search = elasticsearchClient.search(searchRequest,Object.class);
// 獲取返回結(jié)果
for (Hit<Object> hit : search.hits().hits()) {
System.out.println(hit.source());
}
}
2、單個(gè)插入(更新)文檔文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-624373.html
@Resource
ElasticsearchClient elasticsearchClient;
@Test
void contextLoads() throws IOException {
IndexRequest<Product> indexRequest =
new IndexRequest.Builder<Product()
.index("demo_comment_message") // 索引
.id(product.getVideoId()) // 指定文檔Id 也可以不指定,使用ES 自己生成的Id
.document(product).build(); // 文檔內(nèi)容 (product)
// 運(yùn)行插入語(yǔ)句
IndexResponse index = elasticsearchClient.index(indexRequest);
System.out.println(indexRequest.toString());
}
3、批量插入(更新)文檔文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-624373.html
@Resource
ElasticsearchClient elasticsearchClient;
@Test
void contextLoads() throws IOException {
// 構(gòu)建插入 List
List<Product> productList = new ArrayList<>();
for (int i = 3; i < 10; i++) {
Product product = new Product();
product.setCommentId("Demo_" + i);
product.setDesc("第" + i + "次 測(cè)試");
product.setDiggCount(i * 10L);
product.setVideoId("Code_" + i);
productList.add(product);
}
BulkRequest.Builder builder = new BulkRequest.Builder().index("demo_comment_message"); // 指定索引
for (Product product : productList) {
builder.operations(op -> op.index(in -> in.id(product.getVideoId()).document(product)));
}
// 運(yùn)行批量操作
BulkResponse bulk = elasticsearchClient.bulk(builder.build());
System.out.println(bulk.errors()); // 返回 false 即為成功
}
到了這里,關(guān)于Resthighlevelclient被棄用后,ES 8.x 最新用法 java api的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!