最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

ElasticSearch創(chuàng)建后索引修改數(shù)據(jù)類型方法步驟

 更新時間:2023年09月22日 10:29:40   作者:云上周郎  
Elasticsearch存儲數(shù)據(jù)之前需要先創(chuàng)建索引,類似于結(jié)構(gòu)型數(shù)據(jù)庫建庫建表,創(chuàng)建索引時定義了每個字段的索引方式和數(shù)據(jù)類型,這篇文章主要給大家介紹了關(guān)于ElasticSearch創(chuàng)建后索引修改數(shù)據(jù)類型的方法步驟,需要的朋友可以參考下

一、前言

在 Elasticsearch 中,一旦創(chuàng)建索引,就不能更改現(xiàn)有字段的數(shù)據(jù)類型。如果您需要更改數(shù)據(jù)類型,則需要重新創(chuàng)建索引并使用新的數(shù)據(jù)類型。以下針對各種業(yè)務(wù)場景總結(jié)幾種修改方法。

二、【方法一】刪除重建

這種方式的使用場景為當(dāng)前索引庫數(shù)據(jù)量不大,而且可以及時同步數(shù)據(jù)到該索引庫。一般用在實(shí)時采集數(shù)據(jù)到ES中,刪除舊的索引后,重新采集數(shù)據(jù)即可。

delete /my_index

三、【方法二】使用備份數(shù)據(jù)重建

當(dāng)你數(shù)據(jù)量也不算太大,_reindex的執(zhí)行速度還算快的,幾十萬的數(shù)據(jù)量大概在十分鐘以內(nèi),百萬級的大概在半個小時內(nèi)就可以完全備份,可以先使用備份庫,具體思路如下:

1、獲取源索引的數(shù)據(jù)(mapping) 并 創(chuàng)建臨時索引:my_index_temp,

2、備份數(shù)據(jù)到臨時索引:my_index_temp

3、刪除原索引: my_index,

4、重新創(chuàng)建正確數(shù)據(jù)類型索引:my_index

5、再把臨時索引:my_index_temp的數(shù)據(jù)備份到新創(chuàng)建索引 my_index。

操作步驟如下:

1、獲取原索引

//獲取源索引的mapping數(shù)據(jù)
GET my_index/_mapping
//返回示例如下
  {"my_index": {
    "mappings": {
      "cdp_doc": {
        "properties": {
	        "whyBuy": {
	          "type": "keyword"
	        },
	        "zipcode": {
	          "type": "keyword"
	        }
        }
      }
    }
  }

2、創(chuàng)建一個臨時索引,并備份原索引的數(shù)據(jù)

//代碼如下(示例):
//# 創(chuàng)建Mapping
PUT my_index_temp
{
  "mappings": {
    "cdp_doc": {
      "properties": {
        "whyBuy": {
          "type": "keyword"
        },
        "zipcode": {
          "type": "keyword"
        }
      }
    }
  }
}

3、備份原數(shù)據(jù)

// 同步數(shù)據(jù)值臨時索引
POST _reindex?refresh&wait_for_completion=false
{
  "conflicts": "proceed",
  "source": {
    "index": "my_index"
  },
  "dest": {
    "index": "my_index_temp",
    "op_type": "create"
  }
}
//查詢確認(rèn)數(shù)據(jù)是否復(fù)制過去
GET  my_index_temp/_search
{
  "query": {
    "term": {
    }
  }
}

4、刪除原索引及數(shù)據(jù)

//刪除索引及數(shù)據(jù)
delete my_index

5、重新創(chuàng)建正確的索引(注意是修改后的索引)

同步驟2

6、遷移舊數(shù)據(jù)回新索引

同步驟3

7、刪除臨時索引

同步驟4

四、【方法三】使用嵌套增加屬性

這種方法針對索引字段類型text,添加keyword類型操作。

首先區(qū)分一下text類型和keyword類型:

text類型:會進(jìn)行分詞、分詞后建立索引、支持模糊查詢、不支持準(zhǔn)確查詢、不支持聚合查詢。

keyword類型:不會分詞、直接建立索引、不支持模糊查詢、支持準(zhǔn)確查詢、支持聚合查詢。

操作步驟如下:

PUT my_index/_mapping
{
	"properties": {
		"my_fields": {
			"type": "text",
            "analyzer": "ik_smart",
			"fields": {
				"keyword": {
					"type": "keyword",
					"ignore_above": 256
				}
			}
		}
	}
}
// 結(jié)果:
{
  "acknowledged" : true
}

注意這里有個問題,如果直接執(zhí)行完后,數(shù)據(jù)不會及時更新,所以執(zhí)行到這里如果去聚合,舊數(shù)據(jù)是一樣沒有聚合到的,還需要執(zhí)行以下語句更新數(shù)據(jù)

POST my_index/_update_by_query
# 后臺執(zhí)行
POST my_index/_update_by_query?wait_for_completion=false

修改完成之后,新的數(shù)據(jù)就會按照新的mapping來走了,可以通過my_fields.keyword的形式進(jìn)行完全匹配和聚合搜索。

五、【方法四】使用數(shù)據(jù)從原索引導(dǎo)入新索引中

假設(shè)您要將一個名為 my_index 的索引中的整數(shù)類型更改為字符串類型。以下示例代碼將源索引中的數(shù)據(jù)復(fù)制到新索引中,并使用新的字段映射規(guī)則:

POST _reindex
{
  "source": {
    "index": "my_index"
  },
  "dest": {
    "index": "my_new_index"
  },
  "script": {
    "source": "ctx._source.my_integer_field = ctx._source.my_integer_field.toString()",
    "lang": "painless"
  },
  "mappings": {
    "properties": {
      "my_integer_field": {
        "type": "text"
      }
    }
  }
}

在上面的代碼中,我們使用腳本將原始索引中的整數(shù)類型字段 my_integer_field 轉(zhuǎn)換為字符串類型,并將其保存到新的索引中。同時,在新索引中定義了一個新的數(shù)據(jù)類型 text,用于存儲該字段。

切換到新的索引

最后,一旦新索引準(zhǔn)備就緒并包含原始索引的所有數(shù)據(jù),就可以切換應(yīng)用程序以使用新的索引。

需要注意的是,重新創(chuàng)建索引可能會導(dǎo)致數(shù)據(jù)丟失或不可用性。在執(zhí)行此操作之前,請務(wù)必備份和驗(yàn)證數(shù)據(jù)。

總結(jié)

到此這篇關(guān)于ElasticSearch創(chuàng)建后索引修改數(shù)據(jù)類型的文章就介紹到這了,更多相關(guān)ES創(chuàng)建索引修改數(shù)據(jù)類型內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • java實(shí)現(xiàn)對兩張表進(jìn)行數(shù)據(jù)同步

    java實(shí)現(xiàn)對兩張表進(jìn)行數(shù)據(jù)同步

    文章描述了在Java中使用SQL Server的MERGE語句實(shí)現(xiàn)兩張表的同步操作,適用于主表查詢、附表增刪改的場景,MERGE語句可以同時執(zhí)行插入和更新操作,適用于Oracle和SQL Server,但不適用于MySQL和PostgreSQL,可通過自定義注解實(shí)現(xiàn)接口調(diào)用后的同步操作
    2026-05-05
  • Maven的常用命令總結(jié)大全

    Maven的常用命令總結(jié)大全

    這篇文章主要給大家介紹了Maven常用命令總結(jié)的相關(guān)資料,maven最大的作用就是用于對項(xiàng)目中jar包依賴的統(tǒng)一管理,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-12-12
  • Springboot雙mongodb配置方式

    Springboot雙mongodb配置方式

    這篇文章主要介紹了Springboot雙mongodb配置方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • java操作ElasticSearch聚合查詢的示例代碼

    java操作ElasticSearch聚合查詢的示例代碼

    這篇文章主要介紹了java操作ElasticSearch聚合查詢的示例代碼,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),感興趣的朋友一起看看吧
    2024-08-08
  • 基于Java的MathML轉(zhuǎn)圖片的方法(示例代碼)

    基于Java的MathML轉(zhuǎn)圖片的方法(示例代碼)

    最近接到一個新需求mathML轉(zhuǎn)圖片怎么實(shí)現(xiàn)呢?剛開始還真是蒙圈了,不知道怎么實(shí)現(xiàn),今天小編記錄一種基于Java的MathML轉(zhuǎn)圖片的方法,感興趣的朋友一起看看吧
    2021-06-06
  • Java進(jìn)程CPU使用率過高排查步驟詳細(xì)講解

    Java進(jìn)程CPU使用率過高排查步驟詳細(xì)講解

    這篇文章主要介紹了Java進(jìn)程CPU使用率過高排查的相關(guān)資料,針對Java進(jìn)程CPU使用率高的問題,我們可以遵循以下步驟進(jìn)行排查和優(yōu)化,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2025-06-06
  • SpringMVC中的異常處理機(jī)制詳解

    SpringMVC中的異常處理機(jī)制詳解

    SpringMVC提供了基于xml和基于注解的異常處理機(jī)制,一般情況下兩者都要進(jìn)行配置,xml異常處理機(jī)制主要用于處理xml方式產(chǎn)生的異常,注解異常處理機(jī)制主要用于處理基于注解方式產(chǎn)生的異常,這篇文章主要介紹了SpringMVC中的異常處理機(jī)制,需要的朋友可以參考下
    2024-05-05
  • JavaEE的進(jìn)程,線程和創(chuàng)建線程的5種方式詳解

    JavaEE的進(jìn)程,線程和創(chuàng)建線程的5種方式詳解

    這篇文章主要為大家詳細(xì)介紹了JavaEE的進(jìn)程,線程和創(chuàng)建線程的5種方式,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-03-03
  • Java基礎(chǔ)教程之List集合的常用方法

    Java基礎(chǔ)教程之List集合的常用方法

    這篇文章主要給大家介紹了關(guān)于Java基礎(chǔ)教程之List集合的常用方法,在Java編程中List集合是一種常用的數(shù)據(jù)結(jié)構(gòu),用于存儲一組元素,有時候我們需要對List集合中的元素進(jìn)行分組操作,即將相同屬性或特征的元素歸類到一組,需要的朋友可以參考下
    2023-10-10
  • JSON各種轉(zhuǎn)換問題(json轉(zhuǎn)List,json轉(zhuǎn)對象等)

    JSON各種轉(zhuǎn)換問題(json轉(zhuǎn)List,json轉(zhuǎn)對象等)

    這篇文章主要介紹了JSON各種轉(zhuǎn)換問題(json轉(zhuǎn)List,json轉(zhuǎn)對象等),本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-03-03

最新評論

长春市| 阳江市| 柳州市| 武宣县| 巨鹿县| 高平市| 古交市| 柘城县| 栾城县| 闽侯县| 龙陵县| 宁陕县| 那曲县| 鹤岗市| 黄骅市| 翁牛特旗| 旌德县| 舒城县| 长乐市| 彩票| 健康| 阿坝| 油尖旺区| 新昌县| 新田县| 襄城县| 航空| 梁山县| 泉州市| 甘肃省| 泗阳县| 韶山市| 鄄城县| 琼中| 明光市| 绥江县| 沈阳市| 文昌市| 洛扎县| 都匀市| 绵阳市|