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

【ES使用】Java API操作ES寶典(8.x版本)

這篇具有很好參考價(jià)值的文章主要介紹了【ES使用】Java API操作ES寶典(8.x版本)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

大家好,我是老壇。?

本篇文章全部代碼資源請(qǐng)關(guān)注同名公眾號(hào):老壇聊開(kāi)發(fā)

回復(fù):"8.x模板" 即可獲取

Elasticsearch是一個(gè)分布式的RESTful 風(fēng)格的搜索和數(shù)據(jù)分析引擎,它使用方便,查詢速度快,因此也被越來(lái)越多的開(kāi)發(fā)人員使用。

在Java項(xiàng)目中,使用ES的場(chǎng)景也十分常見(jiàn)。除了作為某些特定資源的存儲(chǔ)之外也可以作為像ELK這樣的日志收集系統(tǒng)里的存儲(chǔ)引擎??傊?,對(duì)于非關(guān)系型而查找需求較多的場(chǎng)景,ES的表現(xiàn)還是非常不錯(cuò)的。

本篇文章介紹的是8.x版本的ES相關(guān)Java API操作,如果你使用的版本是7.x及其以下的話可以去看我的另一篇文章:

【ES使用】Java API操作ES寶典(7.x版本及其以下)https://blog.csdn.net/qq_34263207/article/details/127793370

目錄

1. 準(zhǔn)備工作

1.1 引入依賴

1.2 配置文件

2. ES操作

2.1 簡(jiǎn)單操作

2.1.1 插入數(shù)據(jù)

2.1.2 查詢數(shù)據(jù)

2.1.3 修改數(shù)據(jù)

2.1.4 刪除數(shù)據(jù)

2.2 復(fù)雜查詢

2.2.1 match查詢

2.2.2 term查詢

2.2.3 match_phrase查詢

2.2.4 multi_match查詢

2.2.5 fuzzy查詢

2.2.6?range查詢

2.2.7?bool查詢

2.3?排序和分頁(yè)

?3.代碼模板

4.總結(jié)


1. 準(zhǔn)備工作

在使用api之前,需要進(jìn)行一些準(zhǔn)備工作。這里我們要進(jìn)行依賴的引入與config配置文件的編寫。

1.1 引入依賴

從8.x開(kāi)始,spring boot data目前還是不支持的,需要所以沒(méi)有starter來(lái)給我們引入,這里需要引入的是兩個(gè)其它的依賴:

<dependency>
    <groupId>co.elastic.clients</groupId>
    <artifactId>elasticsearch-java</artifactId>
    <version>8.1.1</version>
</dependency>
<dependency>
    <groupId>jakarta.json</groupId>
    <artifactId>jakarta.json-api</artifactId>
    <version>2.0.1</version>
</dependency>

8.1.1版本我用起來(lái)是沒(méi)有問(wèn)題的,8.0.1版本我用起來(lái)會(huì)報(bào)錯(cuò),目前也沒(méi)有查到原因,大家和我引入的版本保持一致即可。

這里我默認(rèn)大家使用的都是spring的環(huán)境,如果沒(méi)有引入spirng-web包的小伙伴請(qǐng)?jiān)僮孕幸雑ackson-core包!

關(guān)于不同版本的ES和Java API版本對(duì)應(yīng)關(guān)系大家可以查閱我的這篇文章:

【ES知識(shí)】es版本與java api版本對(duì)照一覽https://blog.csdn.net/qq_34263207/article/details/127790216

1.2 配置文件

我們先在yml里寫一下ES相關(guān)的配置信息,方便config使用:

es:
  address: 127.0.0.1
  port: 9200
  scheme: http
  username: admin
  password: admin

然后寫一下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.impl.client.BasicCredentialsProvider;
import org.apache.http.impl.nio.client.HttpAsyncClientBuilder;
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;

@Configuration
public class ElasticSearchConfig {

    @Value("${spring.es.address}")
    String address;

    @Value("${spring.es.port}")
    Integer port;

    @Value("${spring.es.scheme}")
    String scheme;

    @Value("${spring.es.username}")
    String username;

    @Value("${spring.es.password}")
    String password;

    @Bean
    public ElasticsearchClient esRestClientWithCred(){
        final CredentialsProvider credentialsProvider = new BasicCredentialsProvider();
        // 配置連接ES的用戶名和密碼,如果沒(méi)有用戶名和密碼可以不加這一行
        credentialsProvider.setCredentials(AuthScope.ANY, new UsernamePasswordCredentials(username, password));
        RestClientBuilder restClientBuilder = RestClient.builder(new HttpHost(address, port, scheme))
                .setHttpClientConfigCallback(new RestClientBuilder.HttpClientConfigCallback() {
                    @Override
                    public HttpAsyncClientBuilder customizeHttpClient(HttpAsyncClientBuilder httpAsyncClientBuilder) {
                        return httpAsyncClientBuilder.setDefaultCredentialsProvider(credentialsProvider);
                    }
                });
        RestClient restClient = restClientBuilder.build();
        ElasticsearchTransport transport = new RestClientTransport(
                restClient, new JacksonJsonpMapper());
        ElasticsearchClient client = new ElasticsearchClient(transport);
        return client;
    }
}

大家直接粘走使用即可,親測(cè)可用。

2. ES操作

我將ES操作定義為了簡(jiǎn)單操作和復(fù)雜操作兩部分。簡(jiǎn)單操作主要是圍繞ES的id去做增刪改查,而復(fù)雜操作是進(jìn)行復(fù)雜查詢時(shí)候所用到的。

2.1 簡(jiǎn)單操作

該部分主要是針對(duì)id去對(duì)ES做了增刪改查,而這里的API使用到的類也比較有特點(diǎn),我簡(jiǎn)單畫(huà)了一張圖方便大家理解:

void co.elastic.clients.transport.rest_client.restclienttransport.<init>(org,java,elasticsearch,開(kāi)發(fā)語(yǔ)言

可以看到,我們的所有操作都是基于ElasticsearchClient的,而該client定義在之前我們的config里面,要用到的時(shí)候注入過(guò)來(lái)就好了。對(duì)于增刪改查的每一種操作,都有相應(yīng)的request和response類來(lái)給我們使用,因?yàn)閷?duì)于ES的操作本質(zhì)上還是發(fā)送http請(qǐng)求。

更多優(yōu)質(zhì)文章資源請(qǐng)關(guān)注同名公眾號(hào):老壇聊開(kāi)發(fā)

?先介紹一下我用到的實(shí)體對(duì)象:

@Data
public class TextBook {

    String bookName;

    String author;

    Integer num;
}

2.1.1 插入數(shù)據(jù)

@SpringBootTest
@Slf4j
public class ESTest {

    @Resource
    ElasticsearchClient client;

    String index = "textbook";

    @Test
    public void insertSingle() throws IOException {
        // 創(chuàng)建要插入的實(shí)體
        TextBook textBook = new TextBook();
        textBook.setBookName("老壇聊開(kāi)發(fā)");
        textBook.setEdition("老壇");
        textBook.setEditionTime("20221109");
        // 方法一
        IndexRequest<Object> indexRequest = new IndexRequest.Builder<>()
                .index(index)
                .document(textBook)
                .build();
        IndexResponse indexResponse1 = client.index(indexRequest);
    }
}

相比于7.x版本的api,這里使用了builder的方式來(lái)創(chuàng)建request,但實(shí)際上結(jié)合java8的lambda表達(dá)式可以寫的更清爽:

@SpringBootTest
@Slf4j
public class ESTest {

    @Resource
    ElasticsearchClient client;

    String index = "textbook";

    @Test
    public void insertSingle() throws IOException {
        // 創(chuàng)建要插入的實(shí)體
        TextBook textBook = new TextBook();
        textBook.setBookName("老壇聊開(kāi)發(fā)");
        textBook.setEdition("老壇");
        textBook.setEditionTime("20221109");
        // 方法二
        IndexResponse indexResponse2 = client.index(b -> b
                .index(index)
                .document(textBook)
        );
    }
}

用這種方式我們甚至都不用管中間的一些類和過(guò)程,直接就可以從client出發(fā)完成整個(gè)流程拿到response,這也是我用了8.x的api后最為驚艷的地方,這里我也建議大家這樣去寫,非常簡(jiǎn)潔快速,后面的各種操作我也會(huì)用這種方式來(lái)書(shū)寫。

2.1.2 查詢數(shù)據(jù)

@SpringBootTest
@Slf4j
public class ESTest {

    @Resource
    ElasticsearchClient client;

    String index = "textbook";

    @Test
    public void grepSingle(String id) throws IOException {
        GetResponse<TextBook> response = client.get(g -> g
                        .index(index)
                        .id(id),
                TextBook.class
        );

        if (response.found()) {
            TextBook textBook = response.source();
            log.info("返回結(jié)果 " + JSON.toJSONString(textBook));
        } else {
            log.info ("textBook not found");
        }
    }
}

這里我們使用GetResponse時(shí)要先指定一個(gè)泛型,就是我們要查詢的實(shí)體,同時(shí)該類型也作為參數(shù)傳入查詢方法中。

這里使用了GetResponse的found方法先確認(rèn)一下是否取到了數(shù)據(jù),取到了就可以進(jìn)行獲取。

2.1.3 修改數(shù)據(jù)

@SpringBootTest
@Slf4j
public class ESTest {

    @Resource
    ElasticsearchClient client;

    String index = "textbook";

    @Test
    public void updateSingle(String id) throws IOException {
        // 創(chuàng)建要更新的實(shí)體
        TextBook textBook = new TextBook();
        textBook.setBookName("老壇聊開(kāi)發(fā)");
        textBook.setEdition("老壇");
        textBook.setEditionTime("20221109");
        UpdateResponse updateResponse = client.update(u -> u
                        .doc(textBook)
                        .id(id),
                TextBook.class
        );
    }
}

2.1.4 刪除數(shù)據(jù)

@SpringBootTest
@Slf4j
public class ESTest {

    @Resource
    ElasticsearchClient client;

    String index = "textbook";

    @Test
    public void deleteSingle(String id) throws IOException {
        DeleteResponse deleteResponse = client.delete(d -> d
                .index(index)
                .id(id)
        );
    }
}

2.2 復(fù)雜查詢

下面介紹一下ES的復(fù)雜查詢,也是我們使用更多一些的查詢方式,這里面和ES的語(yǔ)法會(huì)結(jié)合的更緊密一些,強(qiáng)烈建議大家有一定的ES語(yǔ)法基礎(chǔ)之后再來(lái)閱讀。關(guān)于ES的基礎(chǔ)語(yǔ)法的學(xué)習(xí)大家可以看我的這篇文章:

【ES知識(shí)】ES基礎(chǔ)查詢語(yǔ)法一覽https://blog.csdn.net/qq_34263207/article/details/127849806

有了labmda表達(dá)式的簡(jiǎn)化加成,這部分相比于7.x的api清爽了相當(dāng)多,任何形式的查詢真的都是一行代碼搞定。

2.2.1 match查詢

@SpringBootTest
@Slf4j
public class ESTest {

    @Resource
    ElasticsearchClient client;

    String index = "textbook";

    @Test
    public void grepTextBook() throws IOException {
        SearchResponse<TextBook> matchSearch = client.search(s -> s
                        .index(index)
                        .query(q -> q
                                .match(t -> t
                                        .field("bookName")
                                        .query("老壇")
                                )
                        ),
                TextBook.class);
        for (Hit<TextBook> hit: matchSearch.hits().hits()) {
            TextBook pd = hit.source();
            System.out.println(pd);
        }
    }
}

?對(duì)應(yīng)了ES的match查詢,它等價(jià)的ES語(yǔ)法就是:

GET textbook/_search
{
  "query": {
    "match": {
      "bookName":"老壇"
    }
  }
}

大家還可以發(fā)現(xiàn)這種寫法的另一個(gè)好處就是寫起來(lái)更像是去寫原生的ES查詢命令了,隱藏了Java API復(fù)雜各種類和中間過(guò)程的使用。

2.2.2 term查詢

@SpringBootTest
@Slf4j
public class ESTest {

    @Resource
    ElasticsearchClient client;

    String index = "textbook";

    @Test
    public void grepTextBook() throws IOException {
        SearchResponse<TextBook> termSearch = client.search(s -> s
                        .index(index)
                        .query(q -> q
                                .term(t -> t
                                        .field("bookName")
                                        .value("老壇")
                                )
                        ),
                TextBook.class);
        for (Hit<TextBook> hit: termSearch.hits().hits()) {
            TextBook pd = hit.source();
            System.out.println(pd);
        }
    }
}

?對(duì)應(yīng)了ES的term查詢,它等價(jià)的ES語(yǔ)法就是:

GET textbook/_search
{
  "query": {
    "term": {
      "bookName":"老壇"
    }
  }
}

2.2.3 match_phrase查詢

@SpringBootTest
@Slf4j
public class ESTest {

    @Resource
    ElasticsearchClient client;

    String index = "textbook";

    @Test
    public void grepTextBook() throws IOException {
        SearchResponse<TextBook> matchPhraseSearch = client.search(s -> s
                        .index(index)
                        .query(q -> q
                                .matchPhrase(m -> m
                                        .field("bookName")
                                        .query("老壇")
                                )
                        ),
                TextBook.class);
        for (Hit<TextBook> hit: matchPhraseSearch.hits().hits()) {
            TextBook pd = hit.source();
            System.out.println(pd);
        }
    }
}

?對(duì)應(yīng)了ES的match_phrase查詢,它等價(jià)的ES語(yǔ)法就是:

更多優(yōu)質(zhì)文章資源請(qǐng)關(guān)注同名公眾號(hào):老壇聊開(kāi)發(fā)

GET textbook/_search
{
  "query": {
    "match_phrase": {
      "bookName":"老壇"
    }
  }
}

2.2.4 multi_match查詢

@SpringBootTest
@Slf4j
public class ESTest {

    @Resource
    ElasticsearchClient client;

    String index = "textbook";

    @Test
    public void grepTextBook() throws IOException {
        SearchResponse<TextBook> multiMatchSearch = client.search(s -> s
                        .index(index)
                        .query(q -> q
                                .multiMatch(m -> m
                                        .query("老壇")
                                        .fields("author", "bookName")
                                )
                        ),
                TextBook.class);
        for (Hit<TextBook> hit: multiMatchSearch.hits().hits()) {
            TextBook pd = hit.source();
            System.out.println(pd);
        }
    }
}

?對(duì)應(yīng)了ES的multi_match查詢,它等價(jià)的ES語(yǔ)法就是:

GET textbook/_search
{
	"query": {
		"multi_match": {
			"query": "老壇",
			"fields": ["author","bookName"]
		}
	}
}

2.2.5 fuzzy查詢

@SpringBootTest
@Slf4j
public class ESTest {

    @Resource
    ElasticsearchClient client;

    String index = "textbook";

    @Test
    public void grepTextBook() throws IOException {
        SearchResponse<TextBook> fuzzySearch = client.search(s -> s
                        .index(index)
                        .query(q -> q
                                .fuzzy(f -> f
                                        .field("bookName")
                                        .fuzziness("2")
                                        .value("老壇")
                                )
                        ),
                TextBook.class);
        for (Hit<TextBook> hit: fuzzySearch.hits().hits()) {
            TextBook pd = hit.source();
            System.out.println(pd);
        }
    }
}

?對(duì)應(yīng)了ES的fuzzy查詢,它等價(jià)的ES語(yǔ)法就是:

GET textbook/_search
{
  "query": {
    "fuzzy": {
      "bookName":{
        "value":"老壇",
        "fuzziness":2
      }
    }
  }
}

2.2.6?range查詢

@SpringBootTest
@Slf4j
public class ESTest {

    @Resource
    ElasticsearchClient client;

    String index = "textbook";

    @Test
    public void grepTextBook() throws IOException {
        SearchResponse<TextBook> rangeSearch = client.search(s -> s
                        .index(index)
                        .query(q -> q
                                .range(r -> r
                                        .field("bookName")
                                        .gt(JsonData.of(20))
                                        .lt(JsonData.of(20))
                                )
                        ),
                TextBook.class);
        for (Hit<TextBook> hit: rangeSearch.hits().hits()) {
            TextBook pd = hit.source();
            System.out.println(pd);
        }
    }
}

?對(duì)應(yīng)了ES的range查詢,它等價(jià)的ES語(yǔ)法就是:

GET textbook/_search
{ 
  "query": {
    "range": { 
      "num": { 
          "gt":20, 
          "lt":30 
      } 
    }
  } 
}

2.2.7?bool查詢

@SpringBootTest
@Slf4j
public class ESTest {

    @Resource
    ElasticsearchClient client;

    String index = "textbook";

    @Test
    public void grepTextBook() throws IOException {
        SearchResponse<TextBook> boolSearch = client.search(s -> s
                        .index(index)
                        .query(q -> q
                                .bool(b -> b
                                        .must(m -> m
                                                .term(t -> t
                                                        .field("author")
                                                        .value("老壇")
                                                )
                                        )
                                        .should(sh -> sh
                                                .match(t -> t
                                                        .field("bookName")
                                                        .query("老壇")
                                                )
                                        )

                                )
                        ),
                TextBook.class);
        for (Hit<TextBook> hit: boolSearch.hits().hits()) {
            TextBook pd = hit.source();
            System.out.println(pd);
        }
    }
}

?對(duì)應(yīng)了ES的bool查詢,它等價(jià)的ES語(yǔ)法就是:

GET textbook/_search
{
    "query":{
        "bool":{
            "should":{
                "match":{
                    "bookName":"老壇"
                }
            },
            "must":{
                "term":{
                    "author":"老壇"
                }
            }
        }
    }
}

2.3?排序和分頁(yè)

排序和分頁(yè)直接像ES的語(yǔ)法一樣,體現(xiàn)在和query的平級(jí)即可。這里已match為例進(jìn)行介紹。

@SpringBootTest
@Slf4j
public class ESTest {

    @Resource
    ElasticsearchClient client;

    String index = "textbook";

    @Test
    public void grepTextBook() throws IOException {
        SearchResponse<TextBook> matchSearch = client.search(s -> s
                        .index(index)
                        .query(q -> q
                                .match(t -> t
                                        .field("bookName")
                                        .query("老壇")
                                )
                        )
                        .from(1)
                        .size(100)
                        .sort(so -> so
                                .field(f -> f
                                        .field("num")
                                        .order(SortOrder.Desc)
                                )
                        ),
                TextBook.class);
        for (Hit<TextBook> hit: matchSearch.hits().hits()) {
            TextBook pd = hit.source();
            System.out.println(pd);
        }
    }
}

這是一個(gè)根據(jù)num字段進(jìn)行降序排序的查詢,按頁(yè)容量為100對(duì)數(shù)據(jù)進(jìn)行分頁(yè),取第二頁(yè)數(shù)據(jù)。

它等價(jià)的ES語(yǔ)法就是:

GET textbook/_search
{
    "query":{
        "match":{
            "bookName":"老壇"
        }
    },
    "from":1,
    "size":100,
    "sort":{
        "num":{
            "order":"desc"
        }
    }
}

?3.代碼模板

本篇文章中介紹的全部es操作老壇已整理成模板項(xiàng)目了:

void co.elastic.clients.transport.rest_client.restclienttransport.<init>(org,java,elasticsearch,開(kāi)發(fā)語(yǔ)言

請(qǐng)關(guān)注同名公眾號(hào):老壇聊開(kāi)發(fā)

并回復(fù):"8.x模板" 獲取代碼模板

只要大家根據(jù)自己的實(shí)際環(huán)境修改配置即可直接跑起來(lái)啦,親測(cè)有效!

void co.elastic.clients.transport.rest_client.restclienttransport.<init>(org,java,elasticsearch,開(kāi)發(fā)語(yǔ)言

4.總結(jié)

到這里Java對(duì)ES的操作基本上聊的差不多了,題主這里介紹的未必詳盡,只是一些我們通常會(huì)用到的操作,如果還想詳細(xì)了解更多的內(nèi)容請(qǐng)閱讀官方文檔:

Javadoc and source code | Elasticsearch Java API Client [8.5] | Elastic

另外,題主這里只是為了給大家講明白如何使用舉了幾個(gè)例子,并不一定效率最高或者使用常見(jiàn)最為恰當(dāng),還是需要大家學(xué)習(xí)一下ES的語(yǔ)法根據(jù)自己的實(shí)際業(yè)務(wù)場(chǎng)景去選用,謝謝大家~文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-787554.html

到了這里,關(guān)于【ES使用】Java API操作ES寶典(8.x版本)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • Elasticsearch啟動(dòng)報(bào)updatejava.net.UnknownHostException: geoip.elastic.co錯(cuò)誤

    Elasticsearch啟動(dòng)報(bào)updatejava.net.UnknownHostException: geoip.elastic.co錯(cuò)誤

    :ES啟動(dòng)時(shí)嘗試去連接geoip.elastic.co數(shù)據(jù)庫(kù),不解決也可正常訪問(wèn) 在 elasticsearch.yml 中加上一下代碼,表示不去連接。 如果訪問(wèn)localhost:9200顯示《該網(wǎng)頁(yè)無(wú)法正常運(yùn)作》如下: 原因:ssl地址訪問(wèn)到了默認(rèn)地址 解決方法:在 elasticsearch.yml 中修改配置為 false 如下。 重啟服務(wù)后如下

    2024年02月11日
    瀏覽(22)
  • 最新版ES8的client API操作 Elasticsearch Java API client 8.0

    最新版ES8的client API操作 Elasticsearch Java API client 8.0

    作者:ChenZhen 本人不??淳W(wǎng)站消息,有問(wèn)題通過(guò)下面的方式聯(lián)系: 郵箱:1583296383@qq.com vx: ChenZhen_7 我的個(gè)人博客地址:https://www.chenzhen.space/?? 版權(quán):本文為博主的原創(chuàng)文章,本文版權(quán)歸作者所有,轉(zhuǎn)載請(qǐng)附上原文出處鏈接及本聲明。?? 如果對(duì)你有幫助,請(qǐng)給一個(gè)小小的s

    2024年02月04日
    瀏覽(29)
  • 使用postman和es插件操作elasticsearch API

    使用postman和es插件操作elasticsearch API

    本文介紹了使用postman和es瀏覽器插件操作elasticsearch API的常用方法 本文使用的es瀏覽器插件時(shí)edge下的elasticvue,可以在edge的應(yīng)用商店直接搜索安裝,相較于es-head,這個(gè)插件一直在維護(hù)更新,使用還是很方便的 ? ? 查看索引 查看索引主要使用get方法,可以查看單個(gè)or多個(gè)索引,

    2024年02月07日
    瀏覽(22)
  • Java SpringBoot API 實(shí)現(xiàn)ES(Elasticsearch)搜索引擎的一系列操作(超詳細(xì))(模擬數(shù)據(jù)庫(kù)操作)

    Java SpringBoot API 實(shí)現(xiàn)ES(Elasticsearch)搜索引擎的一系列操作(超詳細(xì))(模擬數(shù)據(jù)庫(kù)操作)

    小編使用的是elasticsearch-7.3.2 基礎(chǔ)說(shuō)明: 啟動(dòng):進(jìn)入elasticsearch-7.3.2/bin目錄,雙擊elasticsearch.bat進(jìn)行啟動(dòng),當(dāng)出現(xiàn)一下界面說(shuō)明,啟動(dòng)成功。也可以訪問(wèn)http://localhost:9200/ 啟動(dòng)ES管理:進(jìn)入elasticsearch-head-master文件夾,然后進(jìn)入cmd命令界面,輸入npm?run?start?即可啟動(dòng)。訪問(wèn)http

    2024年02月04日
    瀏覽(34)
  • 算法寶典——Java版本(持續(xù)更新)

    算法寶典——Java版本(持續(xù)更新)

    注:由于字?jǐn)?shù)的限制,我打算把算法寶典做成一個(gè)系列,一篇文章就20題?。?! 目錄 一、鏈表的算法題(目前10道) 1. 移除鏈表元素(力扣;思路:前后指針) 2. 反轉(zhuǎn)一個(gè)單鏈表 (力扣;思路:頭插法) 3. 鏈表的中間結(jié)點(diǎn)(力扣;思路:快慢指針) 4. 鏈表中倒數(shù)第k個(gè)結(jié)點(diǎn)

    2024年02月09日
    瀏覽(16)
  • 【elastic search】JAVA操作elastic search

    【elastic search】JAVA操作elastic search

    目錄 1.環(huán)境準(zhǔn)備 2.ES JAVA API 3.Spring Boot操作ES 本文是作者ES系列的第三篇文章,關(guān)于ES的核心概念移步: https://bugman.blog.csdn.net/article/details/135342256?spm=1001.2014.3001.5502 關(guān)于ES的下載安裝教程以及基本使用,移步: https://bugman.blog.csdn.net/article/details/135342256?spm=1001.2014.3001.5502 在前文

    2024年01月25日
    瀏覽(23)
  • 使用docker安裝elastic search[ES]和kibana

    使用docker安裝elastic search和kibana,版本均為7.17.1 docker pull# 去dockerhub看具體版本,這里用7.17.1 臨時(shí)安裝生成文件# 參數(shù)說(shuō)明 -d 后臺(tái)啟動(dòng) –name 起別名即:NAMES -p 9200:9200 將端口映射出來(lái) elasticsearch的9200端口是供外部訪問(wèn)使用;9300端口是供內(nèi)部訪問(wèn)使用集群間通訊 -e “discovery.

    2024年02月14日
    瀏覽(20)
  • 4、Elasticsearch7.6.1 Java api操作ES(CRUD、兩種分頁(yè)方式、高亮顯示)和Elasticsearch SQL詳細(xì)示例

    4、Elasticsearch7.6.1 Java api操作ES(CRUD、兩種分頁(yè)方式、高亮顯示)和Elasticsearch SQL詳細(xì)示例

    1、介紹lucene的功能以及建立索引、搜索單詞、搜索詞語(yǔ)和搜索句子四個(gè)示例實(shí)現(xiàn) 2、Elasticsearch7.6.1基本介紹、2種部署方式及驗(yàn)證、head插件安裝、分詞器安裝及驗(yàn)證 3、Elasticsearch7.6.1信息搜索示例(索引操作、數(shù)據(jù)操作-添加、刪除、導(dǎo)入等、數(shù)據(jù)搜索及分頁(yè)) 4、Elasticsearch7

    2024年02月16日
    瀏覽(28)
  • 【flink番外篇】9、Flink Table API 支持的操作示例(14)- 時(shí)態(tài)表的join(java版本)

    一、Flink 專欄 Flink 專欄系統(tǒng)介紹某一知識(shí)點(diǎn),并輔以具體的示例進(jìn)行說(shuō)明。 1、Flink 部署系列 本部分介紹Flink的部署、配置相關(guān)基礎(chǔ)內(nèi)容。 2、Flink基礎(chǔ)系列 本部分介紹Flink 的基礎(chǔ)部分,比如術(shù)語(yǔ)、架構(gòu)、編程模型、編程指南、基本的datastream api用法、四大基石等內(nèi)容。 3、

    2024年02月02日
    瀏覽(20)
  • SpringBoot整合ES,使用java操作ES并發(fā)請(qǐng)求

    對(duì)于java操作整合es有兩種方案我先分別介紹然后解釋一下最后我的選擇為什么 1)、9300:TCP ???spring-data-elasticsearch:transport-api.jar; ? ?通過(guò)對(duì)9300端口建立一個(gè)長(zhǎng)連接,但是因?yàn)閟pringboot 版本不同, transport-api.jar 不同,不能適配 es 版本,并且7.x 已經(jīng)不建議使用,8 以后就要廢

    2023年04月08日
    瀏覽(20)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包