一 前言
官方解釋:https://www.elastic.co/guide/en/elasticsearch/reference/6.0/removal-of-types.html
在elasticsearch6.0.0或更高的版本中創(chuàng)建索引僅能包含單個映射類型。在具有多種映射類型的5.x版本中創(chuàng)建的索引將繼續(xù)像以前一樣在elasticsearch6.x中運行。類型將在elasticsearch7.0.0中的API中棄用,并在8.0.0中完全刪除。
二 什么是映射類型?
從elasticsearch發(fā)布以來,每個文檔都存儲在單個索引中并分配了單個映射類型。映射類型用于表示要編制索引的文檔或實體的類型。例如微博(twitter)索引可能具有用戶(user)類型和推文(tweet)兩個類型。
每種映射類型都可以有自己的字段,因此用戶(user)類型可能有full_name
、user_name
、email
字段;而推文(tweet)類型可能有content
、tweet_at
字段和用戶(user)類型的user_name
字段。
每個文檔都有一個_type
包含類型名稱的元字段,通過在URL中指定類型名稱,搜索可以限制為一種或多種類型:
GET twitter/user,tweet/_search
{
"query":{
"match":{
"user_name":"kimchy"
}
}
}
該_type
字段與文檔組合_id
以生成_uid
字段,因此具有相同類型的文檔_id
可以存儲在單個索引中。
映射類型也用于在文檔中建立父子關系,因此類型的文檔question
可以是類型文檔的父類answer
。
扯了半天淡,一切不都是挺好的嘛?那還為啥要刪除映射類型呢?文章來源:http://www.zghlxwxcb.cn/news/detail-736608.html
三 為什么要刪除映射類型?
最初(其實到現(xiàn)在),為了便于理解elasticsearch的數(shù)據(jù)組織,通常拿elasticsearch和關系型數(shù)據(jù)庫做對比,比如我們談到一個es索引(index)時,通常將它比喻為類似于SQL數(shù)據(jù)庫中的database
,而類型(type)等同于SQL數(shù)據(jù)庫中的表。
這真是一個糟糕的比喻!讓我們有了錯誤理解。因為在SQL數(shù)據(jù)庫中,表彼此獨立,一個表中的字段與另一個表中具有相同名稱的字段無關,而映射類型中的字段不是這種情況。
在elasticsearch的索引中,不同映射類型具有相同名稱的字段在內部由相同的Lucene字段支持。換句話說,使用上面的示例,用戶(user)類型中的user_name
字段存儲在和推文(tweet)類型中的user_name
字段完全相同的字段中,而且兩種類型中的user_name
字段必須具有相同的映射(定義)。
當我們希望刪除一個類型的日期字段和同一個索引中另一個類型的布爾字段時,這可能會導致挫敗感(可以理解為刪除失?。?。文章來源地址http://www.zghlxwxcb.cn/news/detail-736608.html
到了這里,關于Elasticsearch刪除映射類型的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!