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

Java SpringBoot整合elasticsearch 7.17相關問題記錄

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

話不多說直接上代碼,首先關注點Springboot相關ES相關的版本對應
Java SpringBoot整合elasticsearch 7.17相關問題記錄
找到對應的版本號,我這里對應7.17.1 對應的springboot版本 2.3.* 即可
Java SpringBoot整合elasticsearch 7.17相關問題記錄

Java SpringBoot整合elasticsearch 7.17相關問題記錄
上圖為Springboot相關依賴

 <dependency>
            <groupId>org.elasticsearch</groupId>
            <artifactId>elasticsearch</artifactId>
            <version>7.4.1</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-elasticsearch</artifactId>
            <version>2.3.1.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>co.elastic.clients</groupId>
            <artifactId>elasticsearch-java</artifactId>
            <version>7.17.1</version>
            <exclusions>
                <exclusion>
                    <groupId>org.elasticsearch.client</groupId>
                    <artifactId>elasticsearch-rest-client</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.elasticsearch.client</groupId>
            <artifactId>transport</artifactId>
            <version>7.17.1</version>
            <exclusions>
                <exclusion>
                    <artifactId>elasticsearch</artifactId>
                    <groupId>org.elasticsearch</groupId>
                </exclusion>
                <exclusion>
                    <artifactId>elasticsearch-core</artifactId>
                    <groupId>org.elasticsearch</groupId>
                </exclusion>
            </exclusions>
        </dependency>
    1.2創(chuàng)建連接
    es6.0以后廢除 ElasticsearchTemplate
    原來9300,連接方式 換成了9200,yml/properties 切記配置文件中端口號要改成9200,9300不支持

Java SpringBoot整合elasticsearch 7.17相關問題記錄

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 lombok.extern.slf4j.Slf4j;
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.impl.client.BasicCredentialsProvider;
import org.elasticsearch.client.RestClient;
import org.elasticsearch.client.RestClientBuilder;
import org.elasticsearch.client.RestHighLevelClient;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.stereotype.Component;
@Value("${http.port}")
    private String httpPort;
兩種連接方式,用那種都可以

## **第一種:**

     @Bean
    public ElasticsearchClient elasticsearchClient() {
        HttpHost[] httpHosts = getHttpHosts();
        final CredentialsProvider credentialsProvider = new BasicCredentialsProvider();
        //賬號密碼
        credentialsProvider.setCredentials(
                AuthScope.ANY, new UsernamePasswordCredentials("name", "password"));

        RestClientBuilder builder = RestClient.builder(httpHosts)
                .setHttpClientConfigCallback(httpClientBuilder -> httpClientBuilder.setDefaultCredentialsProvider(credentialsProvider));

        RestClient restClient = builder.build();
        ElasticsearchTransport transport = new RestClientTransport(
                restClient, new JacksonJsonpMapper());
        return new ElasticsearchClient(transport);
    }
**

## 第二種:

**    
  @Bean
    public RestHighLevelClient RestHighLevelClient() {
        HttpHost[] httpHosts = getHttpHosts();
        final CredentialsProvider credentialsProvider = new BasicCredentialsProvider();
        //賬號密碼
        credentialsProvider.setCredentials(
                      AuthScope.ANY, new UsernamePasswordCredentials("name", "password"));

        return new RestHighLevelClient(
                RestClient.builder(httpHosts)
                        .setHttpClientConfigCallback(httpClientBuilder -> httpClientBuilder.setDefaultCredentialsProvider(credentialsProvider))
        );
    }

    private HttpHost[] getHttpHosts() {
        return Arrays.stream(httpPort.split(",")).map(x -> {
            String[] hostInfo = x.split(":");
            return new HttpHost(hostInfo[0], Integer.parseInt(hostInfo[1]));
        }).toArray(HttpHost[]::new);
    }

ES
創(chuàng)建索引以及映射相關(首先映射分詞要保持環(huán)境中Es下的分詞器安裝正確)
//創(chuàng)建索引

public Boolean createEsIndex(String indexName) {
    try {
        // 創(chuàng)建索引
        ElasticsearchClient client = esClientConfig.elasticsearchClient();
        CreateIndexResponse createIndexResponse = client.indices().create(c -> c.index(indexName));
        // 響應狀態(tài)
        log.debug("增加索引操作 ===={} " + createIndexResponse.acknowledged());
    } catch (IOException e) {
        log.error("es InsertError----{}", e);
    }
    return true;
}
//刪除索引
 @Override
public Boolean delIndex(String indexName) {
    try {
        ElasticsearchClient client = esClientConfig.elasticsearchClient();
        // 刪除索引
        DeleteIndexResponse deleteIndexResponse = client.indices().delete(e -> e.index(indexName));
        log.debug("刪除操作 ===={} " + deleteIndexResponse.toString());
    } catch (IOException e) {
        log.error("es delError----{}", e);
    }
    return true;
}

對應的增刪改查
//增加 文檔

 @Override
    public Boolean createDocument() {
        String indexName = "test";
        try {
            RestHighLevelClient restHighLevelClient = esClientConfig.RestHighLevelClient();
            CreateIndexRequest request = new CreateIndexRequest(indexName);
            XContentBuilder builder = XContentFactory.jsonBuilder();
            builder.startObject();
            {
                builder.startObject("properties");
                {
                    builder.startObject("id");
                    {
                        builder.field("type", "long");
                    }
                    builder.endObject();
                    builder.startObject("title");
                    {
                        builder.field("type", "text")
                                //插入時分詞
                                .field("analyzer", "ik_smart")
                                //搜索時分詞
                                .field("search_analyzer", "ik_max_word");
                    }
                    builder.endObject();
                }
                builder.endObject();
            }
            builder.endObject();
            request.mapping(builder);
            org.elasticsearch.client.indices.CreateIndexResponse createIndexResponse = restHighLevelClient.indices().create(request, RequestOptions.DEFAULT);
            log.debug("insertArticleIndex{}", createIndexResponse.toString());
        } catch (IOException e) {
            e.printStackTrace();
        }
        return true;
    }

//刪除文檔

 @Override
    public Boolean delDocument(String id,String index) {
        //兩種方式都可以
        try {
            ElasticsearchClient client = esClientConfig.elasticsearchClient();
            // 構(gòu)建請求
            DeleteResponse delete = client.delete(e -> e.index(index).id(id));
            log.debug("deleteResponse.result() = " + delete.toString());
           /* RestHighLevelClient restHighLevelClient = esClientConfig.RestHighLevelClient();
            DeleteRequest deleteRequest=new DeleteRequest(index);
            deleteRequest.id(id);
            DeleteResponse delete = restHighLevelClient.delete(deleteRequest, RequestOptions.DEFAULT);
            log.debug("deleteResponse.result() = " + delete.getResult());*/
        } catch (IOException e) {
            e.printStackTrace();
        }
        return true;
    }

//模糊查詢 增加高亮可以自行按照條件拼接文章來源地址http://www.zghlxwxcb.cn/news/detail-514845.html

  @Override
    public List<Long> testQuery(String str, int page, int size) {
        try {
            if (page < 1) {
                page = 1;
            }
            if (size < 0) {
                size = 5;
            }
            int start = (page - 1) * size;
            int end = page * size - 1;
            String index = "test";
            ElasticsearchClient client = esClientConfig.elasticsearchClient();
            // 模糊查詢,fuzziness表示差幾個可以查詢出來
            SearchResponse<ArticleEsDO> searchResponse =
                    client.search(s -> s.index(index).query(q -> q.wildcard(f -> f.field("title").value("*" + str + "*"))).from(start).size(end)
                            , Test.class);
            List<Test> collect = searchResponse.hits().hits().stream().map(Hit::source).collect(Collectors.toList());
            return collect.stream().map(ArticleEsDO::getId).collect(Collectors.toList());

        } catch (IOException e) {
            e.printStackTrace();
        }
        return null;
    }

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

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

領支付寶紅包贊助服務器費用

相關文章

  • SpringBoot整合ElasticSearch版本問題

    最近在整個這兩個框架,發(fā)現(xiàn)老是版本對不上,不是缺少類,就是啟動不了,美好的一下午就這樣浪費了,多說一句廢話,es的版本更新速度也太快了,如果spring boot已經(jīng)固定的,注意一下es的版本。 下面的這個鏈接是spring官方提供的兼容版本 springboot與elasticsearch兼容版本對應

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

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

    環(huán)境是springboot是2.3.7,elasticsearch是8.4.3 關于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)
  • Java17與相關框架支持版本SpringBoot、IDEA、Tomcat等

    相關框架需要的最低版本 Name Version Java 17+ Spring Framework 6.0 Spring Boot 3.0 Tomcat 10.1 Maven 3.6.3+ Gradle 7.x (7.5 or later) and 8.x Undertow 2.3 IntelliJ IDEA 2021.2+ Spring Framework Overview :: Spring Framework Spring 使創(chuàng)建 Java 企業(yè)應用程序變得容易。 它提供了在企業(yè)環(huán)境中使用 Java 語言所需的一切,支持

    2024年01月18日
    瀏覽(24)
  • java-springboot整合ElasticSearch8.2復雜查詢

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

    2024年02月11日
    瀏覽(16)
  • CentOS yum 安裝 EFK 7.17

    軟件 說明 elasticsearch 分布式、高擴展、高實時的搜索與數(shù)據(jù)分析引擎 kibana 一個基于瀏覽器的Elasticsearch分析和搜索儀表板 filebeat 收集文件數(shù)據(jù) 文檔 文檔鏈接 elasticsearch 7.17 yum 文檔 https://www.elastic.co/guide/en/elasticsearch/reference/7.17/rpm.html kibana 7.17 yum 文檔 https://www.elastic.co/guide

    2024年02月02日
    瀏覽(20)
  • SpringBoot整合ElasticSearch之Java High Level REST Client

    SpringBoot整合ElasticSearch之Java High Level REST Client

    1 搭建SpringBoot工程 2 引入ElasticSearch相關坐標。 3 編寫核心配置類 編寫核心配置文件: 這里可以不寫在配置,可以直接寫在代碼中,只是一般都是寫在配置文件中 編寫核心配置類 4 測試客戶端對象 記得把maven的單元測試關了 注意:使用@Autowired注入RestHighLevelClient 如果報紅線

    2024年02月05日
    瀏覽(48)
  • SpringBoot整合最新Elasticsearch Java API Client 7.16教程

    SpringBoot整合最新Elasticsearch Java API Client 7.16教程

    ????最新在學習SpringBoot整合es的一些知識,瀏覽了網(wǎng)上的一些資料,發(fā)現(xiàn)全都是es很久之前的版本了,其中比較流行的是Java REST Client的High Level Rest Client版本,但是官方文檔的說明中,已經(jīng)申明該版本即將廢棄,不再進行維護了??梢姡汗俜轿臋n ????目前官方推薦的版本是

    2023年04月24日
    瀏覽(33)
  • java SpringBoot2.7整合Elasticsearch(ES)7 進行文檔增刪查改

    java SpringBoot2.7整合Elasticsearch(ES)7 進行文檔增刪查改

    首先 我們在 ES中加一個 books 索引 且?guī)в蠭K分詞器的索引 首先 pom.xml導入依賴 application配置文件中編寫如下配置 spring.elasticsearch.hosts: 172.16.5.10:9200 我這里是用的yml格式的 告訴它指向 我們本地的 9200服務 然后 我們在啟動類同目錄下 創(chuàng)建一個叫 domain的包 放屬性類 然后在這個包

    2024年02月19日
    瀏覽(19)
  • 【工作記錄】springboot集成spring-data-elasticsearch訪問es及問題解決

    【工作記錄】springboot集成spring-data-elasticsearch訪問es及問題解決

    ? 前文我們介紹了通過可視化爬蟲爬取新聞到Mysql庫、基于docker-compose的elk集群部署及抽取mysql數(shù)據(jù)到es的過程,本文我們介紹通過集成springboot和spring-data-elasticsearch客戶端完成連接es并查詢數(shù)據(jù)的開發(fā)過程以及遇到的問題和解決方案,希望對大家能有所幫助,對文中內(nèi)容有任何

    2023年04月10日
    瀏覽(25)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領取紅包

二維碼2

領紅包