最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

袁庭新老師ES系列09節(jié)|使?kibana對類型及映射操作

2023-09-12 11:24 作者:袁庭新  | 我要投稿

前言

類型及映射是Elasticsearch中重要的兩個(gè)概念。本章節(jié)袁老師將帶領(lǐng)同學(xué)們來學(xué)習(xí)Elasticsearch中的類型和映射部分的內(nèi)容。先透露一下,在Elasticsearch中,類型(type)相當(dāng)于關(guān)系數(shù)據(jù)庫中的table概念;映射(mapping)相當(dāng)于數(shù)據(jù)庫中的schema,用來約束字段的類型。有些小伙伴此時(shí)可能會感到云里霧里,那我們就帶著疑問繼續(xù)去探討相關(guān)的內(nèi)容。

一. 創(chuàng)建字段映射

1.字段映射介紹

有了索引庫 ,等于有了數(shù)據(jù)庫中的Database。接下來就需要索引庫中的類型了,也就是數(shù)據(jù)庫中的表。創(chuàng)建數(shù)據(jù)庫表需要設(shè)置字段約束,索引庫也一樣,在創(chuàng)建索引庫的類型時(shí),需要知道這個(gè)類型下有哪些字段,每個(gè)字段有哪些約束信息,這就叫作字段映射(Mapping)。

注意:Elasticsearch7.x取消了索引type類型的設(shè)置,不允許指定類型,默認(rèn)為_doc,但字段仍然是有的,我們需要設(shè)置字段的約束信息,叫作字段映射(Mapping)。

字段的約束我們在學(xué)習(xí)Lucene中我們都見到過,包括到不限于:

  • 字段的數(shù)據(jù)類型

  • 是否要存儲

  • 是否要索引

  • 是否分詞

  • 分詞器是什么

我們一起來看下創(chuàng)建的語法。

2.創(chuàng)建字段映射語法

2.1 創(chuàng)建字段映射語法

語法格式:請求方式依然是PUT。

類型名稱:就是前面講的type的概念,類似于數(shù)據(jù)庫中的表。

字段名:字段名稱由開發(fā)者自定義,每個(gè)字段名下可指定多個(gè)屬性。具體屬性見下表:

演示示例:

如果yx索引庫存在,響應(yīng)結(jié)果見下:

如果yx索引庫不存在,響應(yīng)結(jié)果見下:

注意:在進(jìn)行創(chuàng)建索引庫中的字段映射時(shí),需要先確保索引庫被創(chuàng)建,否則會拋index_not_found_exception異常。

上述案例中,就給“yx”這個(gè)索引庫添加了一個(gè)名為goods的類型,并且在類型中設(shè)置了3個(gè)字段:

  • title:商品標(biāo)題

  • images:商品圖片

  • price:商品價(jià)格

并且給這些字段設(shè)置了一些屬性,至于這些屬性對應(yīng)的含義,我們在后續(xù)會詳細(xì)介紹。

二. 查看映射關(guān)系

語法格式:

查看某個(gè)索引庫中的所有類型的映射。如果要查看某個(gè)類型映射,可以在路徑后面跟上類型名稱。即:

演示示例:

響應(yīng)結(jié)果:

三. 字段數(shù)據(jù)類型詳解

Elasticsearch中支持的數(shù)據(jù)類型非常豐富。具體查看以下鏈接的文檔介紹。

1.字段數(shù)據(jù)類型介紹

每個(gè)字段都有一個(gè)字段數(shù)據(jù)類型或字段類型。此類型指示字段包含的數(shù)據(jù)類型(如字符串或布爾值)及其預(yù)期用途。例如,可以將字符串索引到text字段和keyword字段。但是,text字段值將被分析用于全文搜索,而keyword字符串則保留原樣用于過濾和排序。

字段類型按族分組。同一族中的類型具有完全相同的搜索行為,但可能具有不同的空間使用或性能特征。

目前,有兩個(gè)類型族,keyword和text。其他類型族只有一個(gè)字段類型。例如,boolean類型族由一種字段類型組成:boolean。

2.字段數(shù)據(jù)類型分類

2.1 常用類型

Elasticsearch支持豐富的數(shù)據(jù)類型,見下表:

2.2 string類型

string類型取值見下:

  • text:使用文本數(shù)據(jù)類型的字段,它們會被分詞,文本字段不用于排序,很少用于聚合,如文章標(biāo)題、正文。

  • keyword:關(guān)鍵字?jǐn)?shù)據(jù)類型,用于索引結(jié)構(gòu)化內(nèi)容的字段,不會被分詞,必須完整匹配的內(nèi)容,如郵箱、身份證號等。支持聚合。

這兩種類型都是比較常用的,但有的時(shí)候,對于一個(gè)字符串字段,我們可能希望他兩種都支持,此時(shí),可以利用其多字段特性。

2.3 Numerical數(shù)值類型

數(shù)值類型介紹見下:

  • 基本數(shù)據(jù)類型:long、interger、short、byte、double、?oat、half_?oat

  • ?oat單精度32位

  • double雙精度64位

  • half_?oat半精度16位

  • 浮點(diǎn)數(shù)的高精度類型scaled_?oat

帶有縮放因子的縮放類型浮點(diǎn)數(shù),依靠一個(gè) long數(shù)字類型通過一個(gè)固定的(double類型)縮放因數(shù)進(jìn)行縮放。

需要指定一個(gè)精度因子,比如10或100。Elasticsearch會把真實(shí)值乘以這個(gè)因子后存儲,取出時(shí)再還原。

2.4 Date日期類型

Elasticsearch可以將日期格式化為字符串存儲,但是建議我們存儲為毫秒值,存儲為long,節(jié)省空間。

2.5 Array數(shù)組類型

進(jìn)行匹配時(shí),任意一個(gè)元素滿足,都認(rèn)為滿足。

排序時(shí),如果升序則用數(shù)組中的最小值來排序,如果降序則用數(shù)組中的最大值來排序。

2.6 Object對象

JSON文檔本質(zhì)上是分層的。文檔包含內(nèi)部對象,內(nèi)部對象本身還包含內(nèi)部對象。

可以將上述的文檔可以改寫成以下形式。

2.7 ip地址

IPv4和IPv6地址。

創(chuàng)建一個(gè)my_ip_addr索引庫,并指定ip_addr字段的類型是ip。

向索引庫中添加一條數(shù)據(jù)。

查詢my_ip_addr索引庫中的數(shù)據(jù)。

2.8 數(shù)組

在Elasticsearch中,數(shù)組不需要專用的字段數(shù)據(jù)類型。默認(rèn)情況下,任何字段都可以包含零個(gè)或多個(gè)值,但是,數(shù)組中的所有值必須是相同的字段類型。

2.9 多領(lǐng)域

出于不同的目的,以不同的方式索引同一字段通常很有用。例如,一個(gè)string字段可以映射為一個(gè)text用于全文搜索的字段,也可以映射為一個(gè)keyword用于排序或聚合的字段?;蛘撸梢允褂脴?biāo)準(zhǔn)分析器(standard analyzer)、英語分析器(english analyzer)和法語分析器(french analyzer)對文本字段進(jìn)行索引。

這就是多領(lǐng)域的目的。fields大多數(shù)字段類型通過fields參數(shù)支持多字段。

3.index

index影響字段的索引情況。

  • true:字段會被索引,則可以用來進(jìn)行搜索過濾。默認(rèn)值就是true,只有當(dāng)某一個(gè)字段的index值設(shè)置為true時(shí),檢索ES才可以作為條件去檢索。

  • false:字段不會被索引,不能用來搜索。

index的默認(rèn)值就是true,也就是說你不進(jìn)行任何配置,所有字段都會被索引。

但是有些字段是我們不希望被索引的,比如商品的圖片信息(URL),就需要手動設(shè)置index為false。

4.store

是否將數(shù)據(jù)進(jìn)行額外存儲。

在學(xué)習(xí)Lucene時(shí),我們知道如果一個(gè)字段的store設(shè)置為false,那么在文檔列表中就不會有這個(gè)字段的值,用戶的搜索結(jié)果中不會顯示出來。

但是在Elasticsearch中,即便store設(shè)置為false,也可以搜索到結(jié)果。原因是Elasticsearch在創(chuàng)建文檔索引時(shí),會將文檔中的原始數(shù)據(jù)備份,保存到一個(gè)叫做_source的屬性中。而且我們可以通過過濾_source來選擇哪些要顯示,哪些不顯示。

而如果設(shè)置store為true,就會在_source以外額外存儲一份數(shù)據(jù)(多余),因此一般我們都會將store設(shè)置為false,事實(shí)上,store的默認(rèn)值就是false。

在某些情況下,這對store某個(gè)領(lǐng)域可能是有意義的。例如,如果您的文檔包含一個(gè)title、一個(gè)date和一個(gè)非常大的content字段,則可能只想檢索title和date而不必從一個(gè)大_source字段中提取這些字段:

5.boost

網(wǎng)站權(quán)重:網(wǎng)站權(quán)重是指搜索引擎給網(wǎng)站(包括網(wǎng)頁)賦予一定的權(quán)威值,對網(wǎng)站(含網(wǎng)頁)權(quán)威的評估評價(jià)。一 個(gè)網(wǎng)站權(quán)重越高,在搜索引擎所占的份量越大,在搜索引擎排名就越好。提高網(wǎng)站權(quán)重,不但利于網(wǎng)站(包括網(wǎng)頁)在搜索引擎的排名更靠前,還能提高整站的流量,提高網(wǎng)站信任度。所以提高網(wǎng)站的權(quán)重具有相當(dāng)重要的意義。 權(quán)重即網(wǎng)站在SEO中的重要性、權(quán)威性。英文Page Strength。

1.權(quán)重不等于排名。

2.權(quán)重對排名有著非常大的影響。

3.整站權(quán)重的提高有利于內(nèi)頁的排名。

新增數(shù)據(jù)時(shí),可以指定該數(shù)據(jù)的權(quán)重,權(quán)重越高,得分越高,排名越靠前。

title字段上的匹配項(xiàng)的權(quán)重是字段上的匹配項(xiàng)的權(quán)重的兩倍content ,默認(rèn)boost值為1.0 。 提升僅適用于Term查詢(不提升pre?x、range和模糊查詢)。

四. 一次創(chuàng)建索引庫和類型

傳統(tǒng)方式創(chuàng)建索引庫和設(shè)置類型分為兩個(gè)步驟。

第一步:創(chuàng)建索引庫。

第二步:對索引庫添加類型。

剛才的案例中我們是把創(chuàng)建索引庫和類型分開來做,其實(shí)也可以在創(chuàng)建索引庫的同時(shí),直接制定索引庫中的類型,基本語法見下:

演示示例:

響應(yīng)結(jié)果:

五. 結(jié)語

學(xué)完本章節(jié)是不是感覺收獲滿滿,關(guān)于Elasticsearch中的類型和映射相關(guān)的內(nèi)容咱們就分享到這里。趕緊來回顧下這一章節(jié)主要學(xué)習(xí)的內(nèi)容,首先我們給大家介紹了如何來創(chuàng)建字段映射,然后重點(diǎn)介紹了在Elasticsearch中幾種重要的字段數(shù)據(jù)類型,最后學(xué)習(xí)了如何創(chuàng)建索引和類型。內(nèi)容很多,還需要好好復(fù)習(xí)回顧哦。


袁庭新老師ES系列09節(jié)|使?kibana對類型及映射操作的評論 (共 條)

分享到微博請遵守國家法律
谢通门县| 长宁县| 克山县| 潼关县| 莒南县| 视频| 长治县| 黄石市| 朝阳区| 白朗县| 嘉义县| 武威市| 无锡市| 宝山区| 碌曲县| 新建县| 札达县| 云南省| 瓦房店市| 修武县| 鹤壁市| 手游| 四会市| 年辖:市辖区| 侯马市| 平果县| 磐安县| 吴忠市| 遵化市| 长兴县| 印江| 松潘县| 双江| 荔波县| 绍兴县| 普格县| 阳谷县| 纳雍县| 莲花县| 和林格尔县| 龙川县|