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

ElasticSearch7.3學(xué)習(xí)(十六)----RestHighLevelClient Java api實(shí)現(xiàn)索引的創(chuàng)建、刪除、是否存在、關(guān)閉、開啟

這篇具有很好參考價(jià)值的文章主要介紹了ElasticSearch7.3學(xué)習(xí)(十六)----RestHighLevelClient Java api實(shí)現(xiàn)索引的創(chuàng)建、刪除、是否存在、關(guān)閉、開啟。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

1、寫在前面

注意:導(dǎo)入的包區(qū)別,不同的包創(chuàng)建索引的方式不同。博主親身實(shí)踐,具體體現(xiàn)在createIndexRequest.mapping()里面。讀者可自行試驗(yàn)。

import org.elasticsearch.client.indices.CreateIndexRequest;
import org.elasticsearch.action.admin.indices.create.CreateIndexRequest;

?由此可以猜想一下:

import org.elasticsearch.client.indices.*;
import org.elasticsearch.action.admin.indices.*;

可以看到上述兩種方式導(dǎo)入的包的子類名是相同的,但是具體對(duì)索引的操作方式可能是不同的。具體的區(qū)別博主暫時(shí)還不清楚,后續(xù)若有進(jìn)展再在此處更新。

2、同步創(chuàng)建索引

例如要實(shí)現(xiàn)如下索引的創(chuàng)建

PUT /my_index
{
  "settings": {
    "number_of_shards": 1,
    "number_of_replicas": 1
  },
  "mappings": {
    "properties": {
      "name": {
        "type": "keyword"
      },
      "description": {
        "type": "text"
      },
      "price": {
        "type": "long"
      },
      "pic": {
        "type": "text",
        "index": false
      }
    }
  },
  "aliases": {
    "default_index": {}
  }
}

代碼如下(3種方式):文章來源地址http://www.zghlxwxcb.cn/news/detail-588253.html

    //創(chuàng)建索引
    @Test
    public void testCreateIndex() throws IOException {

        //創(chuàng)建索引對(duì)象
        CreateIndexRequest createIndexRequest = new CreateIndexRequest("itheima_book");
        //設(shè)置參數(shù)
        createIndexRequest.settings(Settings.builder().put("number_of_shards", "1").put("number_of_replicas", "0"));
        //指定映射1
        createIndexRequest.mapping(" {\n" +
                " \t\"properties\": {\n" +
                "            \"name\":{\n" +
                "             \"type\":\"keyword\"\n" +
                "           },\n" +
                "           \"description\": {\n" +
                "              \"type\": \"text\"\n" +
                "           },\n" +
                "            \"price\":{\n" +
                "             \"type\":\"long\"\n" +
                "           },\n" +
                "           \"pic\":{\n" +
                "             \"type\":\"text\",\n" +
                "             \"index\":false\n" +
                "           }\n" +
                " \t}\n" +
                "}", XContentType.JSON);

        //指定映射2
//        Map<String, Object> message = new HashMap<>();
//        message.put("type", "text");
//        Map<String, Object> properties = new HashMap<>();
//        properties.put("message", message);
//        Map<String, Object> mapping = new HashMap<>();
//        mapping.put("properties", properties);
//        createIndexRequest.mapping(mapping);

        //指定映射3
//        XContentBuilder builder = XContentFactory.jsonBuilder();
//        builder.startObject();
//        {
//            builder.startObject("properties");
//            {
//                builder.startObject("message");
//                {
//                    builder.field("type", "text");
//                }
//                builder.endObject();
//            }
//            builder.endObject();
//        }
//        builder.endObject();
//        createIndexRequest.mapping(builder);


        //設(shè)置別名
        createIndexRequest.alias(new Alias("itheima_index_new"));

        // 額外參數(shù)
        //設(shè)置超時(shí)時(shí)間
        createIndexRequest.setTimeout(TimeValue.timeValueMinutes(2));
        //設(shè)置主節(jié)點(diǎn)超時(shí)時(shí)間
        createIndexRequest.setMasterTimeout(TimeValue.timeValueMinutes(1));
        //在創(chuàng)建索引API返回響應(yīng)之前等待的活動(dòng)分片副本的數(shù)量,以int形式表示
        createIndexRequest.waitForActiveShards(ActiveShardCount.from(2));
        createIndexRequest.waitForActiveShards(ActiveShardCount.DEFAULT);

        //操作索引的客戶端
        IndicesClient indices = client.indices();
        //執(zhí)行創(chuàng)建索引庫(kù)
        CreateIndexResponse createIndexResponse = indices.create(createIndexRequest, RequestOptions.DEFAULT);

        //得到響應(yīng)(全部)
        boolean acknowledged = createIndexResponse.isAcknowledged();
        //得到響應(yīng) 指示是否在超時(shí)前為索引中的每個(gè)分片啟動(dòng)了所需數(shù)量的碎片副本
        boolean shardsAcknowledged = createIndexResponse.isShardsAcknowledged();

        System.out.println("acknowledged:" + acknowledged);
        System.out.println("shardsAcknowledged:" + shardsAcknowledged);

    }

3、異步創(chuàng)建索引

    //創(chuàng)建索引異步方式
    @Test
    public void testCreateIndexAsync() throws IOException {

        //創(chuàng)建索引對(duì)象
        CreateIndexRequest createIndexRequest = new CreateIndexRequest("itheima_book");
        //設(shè)置參數(shù)
        createIndexRequest.settings(Settings.builder().put("number_of_shards", "1").put("number_of_replicas", "0"));
        //指定映射1   與創(chuàng)建文檔做類別
        createIndexRequest.mapping(" {\n" +
                " \t\"properties\": {\n" +
                "            \"name\":{\n" +
                "             \"type\":\"keyword\"\n" +
                "           },\n" +
                "           \"description\": {\n" +
                "              \"type\": \"text\"\n" +
                "           },\n" +
                "            \"price\":{\n" +
                "             \"type\":\"long\"\n" +
                "           },\n" +
                "           \"pic\":{\n" +
                "             \"type\":\"text\",\n" +
                "             \"index\":false\n" +
                "           }\n" +
                " \t}\n" +
                "}", XContentType.JSON);

        //指定映射2
//        Map<String, Object> message = new HashMap<>();
//        message.put("type", "text");
//        Map<String, Object> properties = new HashMap<>();
//        properties.put("message", message);
//        Map<String, Object> mapping = new HashMap<>();
//        mapping.put("properties", properties);
//        createIndexRequest.mapping(mapping);

        //指定映射3
//        XContentBuilder builder = XContentFactory.jsonBuilder();
//        builder.startObject();
//        {
//            builder.startObject("properties");
//            {
//                builder.startObject("message");
//                {
//                    builder.field("type", "text");
//                }
//                builder.endObject();
//            }
//            builder.endObject();
//        }
//        builder.endObject();
//        createIndexRequest.mapping(builder);


        //設(shè)置別名
        createIndexRequest.alias(new Alias("itheima_index_new"));

        // 額外參數(shù)
        //設(shè)置超時(shí)時(shí)間
        createIndexRequest.setTimeout(TimeValue.timeValueMinutes(2));
        //設(shè)置主節(jié)點(diǎn)超時(shí)時(shí)間
        createIndexRequest.setMasterTimeout(TimeValue.timeValueMinutes(1));
        //在創(chuàng)建索引API返回響應(yīng)之前等待的活動(dòng)分片副本的數(shù)量,以int形式表示
        createIndexRequest.waitForActiveShards(ActiveShardCount.from(2));
        createIndexRequest.waitForActiveShards(ActiveShardCount.DEFAULT);

        //操作索引的客戶端
        IndicesClient indices = client.indices();
        //執(zhí)行創(chuàng)建索引庫(kù)
//        CreateIndexResponse createIndexResponse = indices.create(createIndexRequest, RequestOptions.DEFAULT);
        ActionListener<CreateIndexResponse> listener = new ActionListener<CreateIndexResponse>() {
            @Override
            public void onResponse(CreateIndexResponse createIndexResponse) {
                //得到響應(yīng)(全部)
                boolean acknowledged = createIndexResponse.isAcknowledged();
                //得到響應(yīng) 指示是否在超時(shí)前為索引中的每個(gè)分片啟動(dòng)了所需數(shù)量的碎片副本
                boolean shardsAcknowledged = createIndexResponse.isShardsAcknowledged();

                System.out.println("acknowledged:" + acknowledged);
                System.out.println("shardsAcknowledged:" + shardsAcknowledged);
            }

            @Override
            public void onFailure(Exception e) {
                e.printStackTrace();
            }
        };

        client.indices().createAsync(createIndexRequest, RequestOptions.DEFAULT, listener);

        try {
            Thread.sleep(5000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }


    }

4、同步刪除索引

    //    刪除索引
    @Test
    public void testDeleteIndex() throws IOException {
        //創(chuàng)建刪除索引請(qǐng)求
        DeleteIndexRequest deleteIndexRequest = new DeleteIndexRequest("itheima_book");
        //        執(zhí)行
        AcknowledgedResponse delete = client.indices().delete(deleteIndexRequest, RequestOptions.DEFAULT);
        //得到相應(yīng)
        boolean acknowledged = delete.isAcknowledged();
        System.out.println("acknowledged:" + acknowledged);

    }

5、異步刪除索引

    //    刪除索引異步操作
    @Test
    public void testDeleteIndexAsync() throws IOException {
        //創(chuàng)建刪除索引請(qǐng)求
        DeleteIndexRequest deleteIndexRequest = new DeleteIndexRequest("itheima_book");
        //        執(zhí)行
        ActionListener<AcknowledgedResponse> listener = new ActionListener<AcknowledgedResponse>() {
            @Override
            public void onResponse(AcknowledgedResponse acknowledgedResponse) {
                //得到相應(yīng)
                boolean acknowledged = acknowledgedResponse.isAcknowledged();
                System.out.println("acknowledged:" + acknowledged);
            }

            @Override
            public void onFailure(Exception e) {
                e.printStackTrace();
            }
        };


//        AcknowledgedResponse delete = client.indices().delete(deleteIndexRequest, RequestOptions.DEFAULT);

    }

6、索引是否存在

    //index exist api
    @Test
    public void testExistIndex() throws IOException {
        GetIndexRequest request=new GetIndexRequest("itheima_book");
        //參數(shù)
        request.local(false);//從主節(jié)點(diǎn)返回本地索引信息狀態(tài)
        request.humanReadable(true);//以適合人類的格式返回
        request.includeDefaults(false);//是否返回每個(gè)索引的所有默認(rèn)配置

        boolean exists = client.indices().exists(request, RequestOptions.DEFAULT);
        System.out.println("exists:"+exists);

    }

7、關(guān)閉索引

    //關(guān)閉索引
    @Test
    public void testCloseIndex() throws IOException {
        CloseIndexRequest request=new CloseIndexRequest("itheima_book");

        AcknowledgedResponse close = client.indices().close(request, RequestOptions.DEFAULT);

        boolean acknowledged = close.isAcknowledged();
        System.out.println("acknowledged:"+acknowledged);
    }

8、開啟索引

    //開啟索引
    @Test
    public void testOpenIndex() throws IOException {
        OpenIndexRequest request=new OpenIndexRequest("itheima_book");

        OpenIndexResponse open = client.indices().open(request, RequestOptions.DEFAULT);

        boolean acknowledged = open.isAcknowledged();
        System.out.println("acknowledged:"+acknowledged);

    }

到了這里,關(guān)于ElasticSearch7.3學(xué)習(xí)(十六)----RestHighLevelClient Java api實(shí)現(xiàn)索引的創(chuàng)建、刪除、是否存在、關(guān)閉、開啟的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(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)文章

  • ElasticSearch7.3學(xué)習(xí)(十八)----多索引搜索

    1、multi-index 多索引搜索 多索引搜索就是一次性搜索多個(gè)index下的數(shù)據(jù) 應(yīng)用場(chǎng)景:生產(chǎn)環(huán)境log索引可以按照日期分開。 2、_all metadata的原理和作用 直接可以搜索所有的field,任意一個(gè)field包含指定的就可以搜索出來。我們?cè)谶M(jìn)行中搜索的時(shí)候,難道是對(duì)document中的每一個(gè)

    2024年02月11日
    瀏覽(30)
  • elasticsearch7基礎(chǔ)用法及java中使用

    elasticsearch7基礎(chǔ)用法及java中使用

    GET、POST、PUT、DELETE、HEAD。 id content 1001 my name is zhang san 1002 i name is li si 1003 my name is wang wu keyword id name 1001,1002,1003 zhang 1001a my 1001,1003 PUT請(qǐng)求:http://127.0.0.1:9200/索引名稱 返回值: 表頭 含義 health 當(dāng)前服務(wù)器健康狀態(tài): green (集群完整) yellow (單點(diǎn)正常、集群不完整) red(單點(diǎn)不正

    2024年02月03日
    瀏覽(55)
  • Elasticsearch基礎(chǔ)篇(四):Elasticsearch7.x的官方文檔學(xué)習(xí)(Set up Elasticsearch)

    You should rarely need to change Java Virtual Machine (JVM) options. If you do, the most likely change is setting the heap size. 通常情況下,您應(yīng)該很少需要更改Java虛擬機(jī)(JVM)選項(xiàng)。如果需要更改,最常見的更改是設(shè)置堆大小。 The remainder of this document explains in detail how to set JVM options. You can set options

    2024年02月08日
    瀏覽(28)
  • Elasticsearch RestHighLevelClient 已標(biāo)記為被棄用 它的替代方案 Elasticsearch Java API Client 的基礎(chǔ)教程及遷移方案

    在Elasticsearch7.15版本之后,Elasticsearch官方將它的高級(jí)客戶端 RestHighLevelClient 標(biāo)記為棄用狀態(tài)。同時(shí)推出了全新的Java API客戶端 Elasticsearch Java API Client ,該客戶端也將在Elasticsearch8.0及以后版本中成為官方推薦使用的客戶端。 Elasticsearch Java API Client 支持除 Vector tile search API 和

    2024年01月16日
    瀏覽(21)
  • ElasticSearch 學(xué)習(xí)9 spring-boot ,elasticsearch7.16.1實(shí)現(xiàn)中文拼音分詞搜索

    ElasticSearch 學(xué)習(xí)9 spring-boot ,elasticsearch7.16.1實(shí)現(xiàn)中文拼音分詞搜索

    一、elasticsearch官網(wǎng)下載:Elasticsearch 7.16.1 | Elastic 二、拼音、ik、繁簡(jiǎn)體轉(zhuǎn)換插件安裝 ik分詞:GitHub - medcl/elasticsearch-analysis-ik: The IK Analysis plugin integrates Lucene IK analyzer into elasticsearch, support customized dictionary. 拼音分詞:GitHub - medcl/elasticsearch-analysis-pinyin: This Pinyin Analysis plugin is

    2024年01月22日
    瀏覽(28)
  • Java + SpringBoot 操作 ElasticSearch7.x.x工具類RestHighLevelClientUtils

    ElasticSearch創(chuàng)建索引,刪除索引,判斷 index 是否存在,根據(jù) id 刪除指定索引中的文檔, 根據(jù) id 更新指定索引中的文檔,根據(jù) id 更新指定索引中的文檔,根據(jù)某字段的 k-v 更新索引中的文檔, 添加文檔 手動(dòng)指定id,簡(jiǎn)單模糊匹配 默認(rèn)分頁為 0,10, term 查詢 精準(zhǔn)匹配,term 查詢

    2024年02月13日
    瀏覽(20)
  • Elasticsearch8.x版本中RestHighLevelClient被棄用,新版本中全新的Java客戶端Elasticsearch Java API Client中常用API練習(xí)

    在Es7.15版本之后,es官方將它的高級(jí)客戶端RestHighLevelClient標(biāo)記為棄用狀態(tài)。同時(shí)推出了全新的java API客戶端Elasticsearch Java API Client,該客戶端也將在Elasticsearch8.0及以后版本中成為官方推薦使用的客戶端。 Elasticsearch Java API Client支持除Vector title search API和Find structure API之外的所有

    2023年04月08日
    瀏覽(25)
  • [Java Framework] [ELK] Spring 整合ES (ElasticSearch7.15.x +)

    [Java Framework] [ELK] Spring 整合ES (ElasticSearch7.15.x +)

    ElasticSearch7.15.x 版本后,廢棄了高級(jí)Rest客戶端的功能 2.1 配置文件 2.2 配置類 3.1 索引的相關(guān)操作 3.2 實(shí)體映射相關(guān)操作 3.2.1 創(chuàng)建實(shí)體類 3.2.2 Doc實(shí)體操作API 3.3 聚合相關(guān)操作 3.3.1 創(chuàng)建實(shí)體類 3.3.2 創(chuàng)建操作類 [1] Elasticsearch Clients [2] Elasticsearch Clients - Aggregations

    2023年04月08日
    瀏覽(25)
  • ElasticSearch7.3學(xué)習(xí)(二十二)----Text字段排序、Scroll分批查詢場(chǎng)景解析

    ElasticSearch7.3學(xué)習(xí)(二十二)----Text字段排序、Scroll分批查詢場(chǎng)景解析

    場(chǎng)景:數(shù)據(jù)庫(kù)中按照某個(gè)字段排序,sql只需寫order by 字段名即可,如果es對(duì)一個(gè) text field 進(jìn)行排序,es中無法排序。因?yàn)槲臋n入倒排索引表時(shí),分詞存入,es無法知道此字段的真實(shí)值。這樣的結(jié)果往往不準(zhǔn)確,因?yàn)榉衷~后是多個(gè)單詞,再排序就不是我們想要的結(jié)果了。 通常有兩

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

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

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

    2024年02月16日
    瀏覽(28)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包