国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

springboot整合elasticsearch8

這篇具有很好參考價值的文章主要介紹了springboot整合elasticsearch8。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

1.引入maven依賴
 		<dependency>
            <groupId>org.glassfish</groupId>
            <artifactId>jakarta.json</artifactId>
            <version>2.0.1</version>
        </dependency>
        <dependency>
            <groupId>co.elastic.clients</groupId>
            <artifactId>elasticsearch-java</artifactId>
            <version>8.4.1</version>
        </dependency>
        <dependency>
            <groupId>org.elasticsearch.client</groupId>
            <artifactId>elasticsearch-rest-client</artifactId>
            <version>8.4.1</version>
        </dependency>
2.application.yml添加配置
spring:
  elasticsearch:
    rest:
      uris: 127.0.0.1:9200 #es
      username: elastic
      password: ******
3.編寫config文件
package com.example.demo.config;

import co.elastic.clients.elasticsearch.ElasticsearchClient;
import co.elastic.clients.json.jackson.JacksonJsonpMapper;
import co.elastic.clients.transport.ElasticsearchTransport;
import co.elastic.clients.transport.rest_client.RestClientTransport;
import org.apache.http.HttpHost;
import org.apache.http.auth.AuthScope;
import org.apache.http.auth.UsernamePasswordCredentials;
import org.apache.http.client.CredentialsProvider;
import org.apache.http.client.config.RequestConfig;
import org.apache.http.impl.client.BasicCredentialsProvider;
import org.apache.http.impl.nio.client.HttpAsyncClientBuilder;
import org.apache.http.impl.nio.reactor.IOReactorConfig;
import org.elasticsearch.client.RestClient;
import org.elasticsearch.client.RestClientBuilder;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.util.StringUtils;

@Configuration
public class ElasticSearchConfig {

    @Value("${spring.elasticsearch.rest.uris}")
    private String hosts;

    @Value("${spring.elasticsearch.rest.username}")
    private String userName;

    @Value("${spring.elasticsearch.rest.password}")
    private String passWord;


    @Bean
    public ElasticsearchClient elasticsearchClient(){
        HttpHost[] httpHosts = toHttpHost();
        // 無驗證信息
        //RestClient restClient = RestClient.builder(httpHosts).build();

        // 有驗證信息
        final CredentialsProvider credentialsProvider = new BasicCredentialsProvider();
        credentialsProvider.setCredentials(
                AuthScope.ANY, new UsernamePasswordCredentials(userName, passWord));

        RestClientBuilder builder = RestClient.builder(httpHosts);
        builder.setRequestConfigCallback(
                new RestClientBuilder.RequestConfigCallback() {
                    @Override
                    public RequestConfig.Builder customizeRequestConfig(
                            RequestConfig.Builder requestConfigBuilder) {
                        return requestConfigBuilder.setSocketTimeout(60000).setConnectTimeout(5000);
                    }
                });
        builder.setHttpClientConfigCallback(new RestClientBuilder.HttpClientConfigCallback() {
                    @Override
                    public HttpAsyncClientBuilder customizeHttpClient(HttpAsyncClientBuilder httpAsyncClientBuilder) {

                        return httpAsyncClientBuilder.setDefaultCredentialsProvider(credentialsProvider);
                    }
                });
        RestClient restClient = builder.build();
        // Create the transport with a Jackson mapper
        ElasticsearchTransport transport = new RestClientTransport(restClient,new JacksonJsonpMapper());
        // And create the API client
        return new ElasticsearchClient(transport);
    }

    private HttpHost[] toHttpHost() {
        if (!StringUtils.hasLength(hosts)) {
            throw new RuntimeException("invalid elasticsearch configuration. elasticsearch.hosts不能為空!");
        }

        // 多個IP逗號隔開
        String[] hostArray = hosts.split(",");
        HttpHost[] httpHosts = new HttpHost[hostArray.length];
        HttpHost httpHost;
        for (int i = 0; i < hostArray.length; i++) {
            String[] strings = hostArray[i].split(":");
            httpHost = new HttpHost(strings[0], Integer.parseInt(strings[1]), "http");
            httpHosts[i] = httpHost;
        }

        return httpHosts;
    }

}

啟動demo項目,通過控制臺日志查看是否能夠正常連接es。文章來源地址http://www.zghlxwxcb.cn/news/detail-521509.html

4.在DemoApplicationTests編寫簡單測試操作es。
@SpringBootTest
@Slf4j
class DemoApplicationTests {

    @Autowired
    private ElasticsearchClient client;

    @Test
    public void createTest() throws IOException {
        log.info("創(chuàng)建索引");
        //寫法比RestHighLevelClient更加簡潔
        CreateIndexResponse indexResponse = client.indices().create(c -> c.index("user"));
        log.info(String.valueOf(indexResponse));
    }

    @Test
    public void getCompanyList() throws IOException {
 		log.info("查詢索引");	
        GetIndexResponse getIndexResponse = client.indices().get(i -> i.index("user"));
        log.info(String.valueOf(getIndexResponse));
    }

    @Test
    public void existsTest() throws IOException {
        log.info("測試index是否存在");
        BooleanResponse booleanResponse = client.indices().exists(e -> e.index("user"));
        log.info(String.valueOf(booleanResponse.value()));
    }

    @Test
    public void userInsert() throws IOException {
        log.info("user信息插入");
        //創(chuàng)建user列表
        List<User> users = new ArrayList<>();
        User user = new User();
        user.setId("18");
        user.setName("李三");
        user.setAge(13);
        user.setSex("男");
        users.add(user);
        
        List<BulkOperation> bulkOperations = new ArrayList<>();
        //將user中id作為es id,也可不指定id es會自動生成id
        users.forEach(a -> bulkOperations.add(BulkOperation.of(b -> b.index(c -> c.id(a.getId()).document(a)))));
        client.bulk(x ->x.index("user").operations(bulkOperations));

    }

}

到了這里,關(guān)于springboot整合elasticsearch8的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • java-springboot整合ElasticSearch8.2復(fù)雜查詢

    近期有大數(shù)據(jù)項目需要用到es,而又是比較新的es版本,網(wǎng)上也很少有8.x的java整合教程,所有寫下來供各位參考。 首先 1.導(dǎo)包: 2.客戶端連接代碼EsUtilConfigClint: 一開始按照其他博主的方法,長時間連接不操作查詢再次調(diào)用查詢時會報錯timeout,所以要設(shè)置RequestConfigCallback 3

    2024年02月11日
    瀏覽(16)
  • SpringBoot3整合Elasticsearch8.x之全面保姆級教程

    SpringBoot3整合Elasticsearch8.x之全面保姆級教程

    安裝配置 ES : https://blog.csdn.net/qq_50864152/article/details/136724528 安裝配置 Kibana : https://blog.csdn.net/qq_50864152/article/details/136727707 新建項目:新建名為 web 的 SpringBoot3 項目 公共配置 介紹:一個開源的高擴展的分布式全文檢索引擎,可以近乎實時的存儲 和檢索數(shù)據(jù) 依賴: web 模塊

    2024年04月13日
    瀏覽(27)
  • elasticsearch8和kibana部署以及與springboot整合遇到的坑

    elasticsearch8和kibana部署以及與springboot整合遇到的坑

    我本來使用的是最新版本的es 8.6.2。但是由于ik分詞器只更新到8.6.1,所以就更改為部署8.6.1。在過程中遇到一些問題,這里做一個總結(jié) 環(huán)境:windows10 elasticsearch版本:8.6.1 一、修改es 用戶密碼的方式 二、kibana 使用用戶名和密碼登錄 修改kibana.yml 文件 啟動kibana一直閃退 解決方

    2024年02月02日
    瀏覽(22)
  • springboot3整合elasticsearch8.7.0實現(xiàn)為bean對象創(chuàng)建索引添加映射

    springboot3整合elasticsearch8.7.0實現(xiàn)為bean對象創(chuàng)建索引添加映射

    目錄 準(zhǔn)備工作 添加相關(guān)依賴 在yml中配置elasticsearch 主要內(nèi)容 實體類 ElasticSearch配置類 測試 確認(rèn)當(dāng)前沒有counter索引 啟動spring 再次查詢counter索引? 在測試類中輸出counter索引的映射 官方文檔 要注意版本對應(yīng)關(guān)系 spring官方文檔中有版本對照表 目前我使用的都是最新的版本,

    2024年02月03日
    瀏覽(20)
  • 關(guān)于springboot整合elasticsearch8.4.3的找不到相關(guān)類JsonProvider、JsonProvider的解決方案

    關(guān)于springboot整合elasticsearch8.4.3的找不到相關(guān)類JsonProvider、JsonProvider的解決方案

    環(huán)境是springboot是2.3.7,elasticsearch是8.4.3 關(guān)于8.4.3的官方文檔:https://www.elastic.co/guide/en/elasticsearch/client/java-api-client/8.4/installation.html 創(chuàng)建ElasticsearchClient 對象: 一開始報錯ClassNotFoundException: jakarta.json.spi.JsonProvider,然后看了下官方文檔修改了下jakarta.json-api的版本.解決完成之后

    2024年02月02日
    瀏覽(26)
  • springboot整合elasticsearch8.2報錯unable to parse response body for Response{requestLine

    springboot整合elasticsearch8.2報錯unable to parse response body for Response{requestLine

    用postman發(fā)出請求,執(zhí)行saveAll命令的時候發(fā)現(xiàn)錯誤,返回500。 但是很奇怪elsticsearch卻能夠存進去。版本的話springboot是2.6.4,2.7貌似也不行 查看:官方資料 我們使用savaall會去繼承ElasticsearchRepository類,并調(diào)用其中的函數(shù)。 然而,據(jù)圖可知,在2022.8月依舊只支持7.17.4,而我的版本

    2024年02月16日
    瀏覽(23)
  • springboo整合elasticSearch8 java client api

    官方文檔: https://www.elastic.co/guide/en/elasticsearch/client/java-api-client/current/connecting.html gradle maven 若無密碼,可以使用下面方式: 使用es自動設(shè)置的mapping 設(shè)置mappings Doc是自定義實體類 比如 select * from doc where user_id in(1,2,3); 方式一: 方式二: 方式三:

    2024年02月13日
    瀏覽(46)
  • SpringBoot連接ElasticSearch8.*

    系統(tǒng)中需要使用到ElasticSearch進行內(nèi)容檢索,因此需要搭建SpringBoot + ElasticSearch的環(huán)境。

    2024年02月16日
    瀏覽(25)
  • 【springboot-04】ElasticSearch8.7搜索

    【springboot-04】ElasticSearch8.7搜索

    為什么學(xué)?因為它 查詢速度很快 ,而且是非關(guān)系型數(shù)據(jù)庫?(NoSql) 一些增刪改查已經(jīng)配置好了,無需重復(fù)敲碼 ElasticSearch 更新快,本篇文章將主要介紹一些常用方法。 對于 spirngboot 整合 Es 的文章很少,有些已經(jīng)過時【更新太快了】 ?依賴:Maven 配置類:EsConfig 水果信息

    2024年02月07日
    瀏覽(21)
  • java(springboot)對接elasticsearch8+

    注:jackson包es只用到了databind,之所以全部引用是因為actuator用到了其他,只升級一個會 導(dǎo)致版本沖突 注:因為沒有用springboot自身的es插件所以健康檢查檢測不到es狀態(tài),關(guān)閉es檢測 上邊創(chuàng)建索引是定制的加了特殊mapping,正常這樣

    2024年02月16日
    瀏覽(26)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包