Elasticsearch數(shù)據(jù)類型及其屬性

Elasticsearch數(shù)據(jù)類型及其屬性

一郑兴、數(shù)據(jù)類型

字段類型概述
一級分類 二級分類 具體類型
核心類型 字符串類型 string,text,keyword
h 整數(shù)類型 integer,long,short,byte
h 浮點(diǎn)類型 double,float,half_float,scaled_float
h 邏輯類型 boolean
h 日期類型 date
h 范圍類型 range
h 二進(jìn)制類型 binary
復(fù)合類型 數(shù)組類型 array
f 對象類型 object
f 嵌套類型 nested
地理類型 地理坐標(biāo)類型 geo_point
d 地理地圖 geo_shape
特殊類型 IP類型 ip
t 范圍類型 completion
t 令牌計(jì)數(shù)類型 token_count
t 附件類型 attachment
t 抽取類型 percolator
核心類型
  • 1矮台、字符串類型
      string類型: 在ElasticSearch 舊版本中使用較多,從ElasticSearch 5.x開始不再支持string姻僧,由text和keyword類型替代。
      text 類型:當(dāng)一個(gè)字段是要被全文搜索的傲须,比如Email內(nèi)容、產(chǎn)品描述趟脂,應(yīng)該使用text類型泰讽。設(shè)置text類型以后,字段內(nèi)容會被分析昔期,在生成倒排索引以前已卸,字符串會被分析器分成一個(gè)一個(gè)詞項(xiàng)。text類型的字段不用于排序硼一,很少用于聚合累澡。
      keyword
    keyword類型適用于索引結(jié)構(gòu)化的字段,比如email地址般贼、主機(jī)名愧哟、狀態(tài)碼和標(biāo)簽。如果字段需要進(jìn)行過濾(比如查找已發(fā)布博客中status屬性為published的文章)哼蛆、排序蕊梧、聚合。keyword類型的字段只能通過精確值搜索到腮介。

  • 2肥矢、整數(shù)類型

    類型 取值范圍
    byte -128~127
    short -32768~32767
    integer -231~231-1
    short -263~263-1

    在滿足需求的情況下,盡可能選擇范圍小的數(shù)據(jù)類型叠洗。比如甘改,某個(gè)字段的取值最大值不會超過100旅东,那么選擇byte類型即可。迄今為止吉尼斯記錄的人類的年齡的最大值為134歲十艾,對于年齡字段抵代,short足矣。字段的長度越短疟羹,索引和搜索的效率越高主守。

  • 3禀倔、浮點(diǎn)類型

    類型 取值范圍
    doule 64位雙精度IEEE 754浮點(diǎn)類型
    float 32位單精度IEEE 754浮點(diǎn)類型
    half_float 16位半精度IEEE 754浮點(diǎn)類型
    scaled_float 縮放類型的的浮點(diǎn)數(shù)

    對于float榄融、half_float和scaled_float,-0.0和+0.0是不同的值,使用term查詢查找-0.0不會匹配+0.0救湖,同樣range查詢中上邊界是-0.0不會匹配+0.0愧杯,下邊界是+0.0不會匹配-0.0。

    其中scaled_float鞋既,比如價(jià)格只需要精確到分力九,price為57.34的字段縮放因子為100,存起來就是5734
    優(yōu)先考慮使用帶縮放因子的scaled_float浮點(diǎn)類型邑闺。

  • 4跌前、date類型
    日期類型表示格式可以是以下幾種:
    (1)日期格式的字符串,比如 “2018-01-13” 或 “2018-01-13 12:10:30”
    (2)long類型的毫秒數(shù)( milliseconds-since-the-epoch陡舅,epoch就是指UNIX誕生的UTC時(shí)間1970年1月1日0時(shí)0分0秒)
    (3)integer的秒數(shù)(seconds-since-the-epoch)

  • 5抵乓、boolean類型 true和false

  • 6、 binary類型
      進(jìn)制字段是指用base64來表示索引中存儲的二進(jìn)制數(shù)據(jù)靶衍,可用來存儲二進(jìn)制形式的數(shù)據(jù)灾炭,例如圖像。默認(rèn)情況下颅眶,該類型的字段只存儲不索引蜈出。二進(jìn)制類型只支持index_name屬性。

  • 7涛酗、array類型
    (1)字符數(shù)組: [ “one”, “two” ]
    (2)整數(shù)數(shù)組: productid:[ 1, 2 ]
    (3)對象(文檔)數(shù)組: “user”:[ { “name”: “Mary”, “age”: 12 }, { “name”: “John”, “age”: 10 }]铡原,
    注意:lasticSearch不支持元素為多個(gè)數(shù)據(jù)類型:[ 10, “some string” ]

  • 8、 object類型
    JSON對象商叹,文檔會包含嵌套的對象

  • 9眷蜈、ip類型
    p類型的字段用于存儲IPv4或者IPv6的地址

二、Mapping 支持屬性

  • 1沈自、enabled:僅存儲酌儒、不做搜索和聚合分析

      "enabled":true (缺省)| false
    
  • 2枯途、index:是否構(gòu)建倒排索引(即是否分詞忌怎,設(shè)置false籍滴,字段將不會被索引)

          "index": true(缺省)| false
    
  • 3榴啸、index_option:存儲倒排索引的哪些信息

      4個(gè)可選參數(shù):
          docs:索引文檔號
          freqs:文檔號+詞頻
          positions:文檔號+詞頻+位置孽惰,通常用來距離查詢
          offsets:文檔號+詞頻+位置+偏移量,通常被使用在高亮字段
      分詞字段默認(rèn)是positions鸥印,其他默認(rèn)時(shí)docs
      
      "index_options": "docs"
    
  • 4勋功、norms:是否歸一化相關(guān)參數(shù)、如果字段僅用于過濾和聚合分析库说、可關(guān)閉
    分詞字段默認(rèn)配置狂鞋,不分詞字段:默認(rèn){“enable”: false},存儲長度因子和索引時(shí)boost潜的,建議對需要參加評分字段使用骚揍,會額外增加內(nèi)存消耗

      "norms": {"enable": true, "loading": "lazy"}
    
  • 5、doc_value:是否開啟doc_value啰挪,用戶聚合和排序分析
    對not_analyzed字段信不,默認(rèn)都是開啟,分詞字段不能使用亡呵,對排序和聚合能提升較大性能抽活,節(jié)約內(nèi)存

      "doc_value": true(缺省)| false
    
  • 6锰什、fielddata:是否為text類型啟動fielddata下硕,實(shí)現(xiàn)排序和聚合分析
    針對分詞字段,參與排序或聚合時(shí)能提高性能歇由,不分詞字段統(tǒng)一建議使用doc_value

      "fielddata": {"format": "disabled"}
    
  • 7卵牍、store:是否單獨(dú)設(shè)置此字段的是否存儲而從_source字段中分離,只能搜索沦泌,不能獲取值

      "store": false(默認(rèn))| true
    
  • 8糊昙、coerce:是否開啟自動數(shù)據(jù)類型轉(zhuǎn)換功能,比如:字符串轉(zhuǎn)數(shù)字谢谦,浮點(diǎn)轉(zhuǎn)整型

      "coerce: true(缺适臀)| false"
    
  • 9、multifields:靈活使用多字段解決多樣的業(yè)務(wù)需求

  • 11回挽、dynamic:控制mapping的自動更新

      "dynamic": true(缺拭涣)| false | strict
    

1

  • 12、data_detection:是否自動識別日期類型

      "data_detection":true(缺是)| false
    

dynamic和data_detection的詳解:Elasticsearch dynamic mapping(動態(tài)映射) 策略.

  • 13祭刚、analyzer:指定分詞器,默認(rèn)分詞器為standard analyzer

      "analyzer": "ik"
    
  • 14、boost:字段級別的分?jǐn)?shù)加權(quán)涡驮,默認(rèn)值是1.0

      "boost": 1.23
    
  • 15暗甥、fields:可以對一個(gè)字段提供多種索引模式,同一個(gè)字段的值捉捅,一個(gè)分詞撤防,一個(gè)不分詞

      "fields": {"raw": {"type": "string", "index": "not_analyzed"}}
    
  • 16、ignore_above:超過100個(gè)字符的文本棒口,將會被忽略寄月,不被索引

      "ignore_above": 100
    
  • 17、include_in_all:設(shè)置是否此字段包含在_all字段中无牵,默認(rèn)時(shí)true漾肮,除非index設(shè)置成no

      "include_in_all": true
    
  • 18、null_value:設(shè)置一些缺失字段的初始化合敦,只有string可以使用初橘,分詞字段的null值也會被分詞

      "null_value": "NULL"
    
  • 19验游、position_increament_gap:影響距離查詢或近似查詢充岛,可以設(shè)置在多值字段的數(shù)據(jù)上或分詞字段上,查詢時(shí)可以指定slop間隔耕蝉,默認(rèn)值時(shí)100

      "position_increament_gap": 0
    
  • 20崔梗、search_analyzer:設(shè)置搜索時(shí)的分詞器,默認(rèn)跟analyzer是一致的垒在,比如index時(shí)用standard+ngram蒜魄,搜索時(shí)用standard用來完成自動提示功能

      "search_analyzer": "ik"
    
  • 21、similarity:默認(rèn)時(shí)TF/IDF算法场躯,指定一個(gè)字段評分策略谈为,僅僅對字符串型和分詞類型有效

      "similarity": "BM25"
    
  • 22、trem_vector:默認(rèn)不存儲向量信息踢关,支持參數(shù)yes(term存儲)伞鲫,with_positions(term+位置),with_offsets(term+偏移量)签舞,with_positions_offsets(term+位置+偏移量)對快速高亮fast vector highlighter能提升性能秕脓,但開啟又會加大索引體積,不適合大數(shù)據(jù)量用

      "trem_vector": "no"
    

三儒搭、Mapping 字段設(shè)置流程

avatar
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末吠架,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子搂鲫,更是在濱河造成了極大的恐慌傍药,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,755評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異拐辽,居然都是意外死亡褪秀,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,305評論 3 395
  • 文/潘曉璐 我一進(jìn)店門薛训,熙熙樓的掌柜王于貴愁眉苦臉地迎上來媒吗,“玉大人,你說我怎么就攤上這事乙埃≌⒂ⅲ” “怎么了?”我有些...
    開封第一講書人閱讀 165,138評論 0 355
  • 文/不壞的土叔 我叫張陵介袜,是天一觀的道長甫何。 經(jīng)常有香客問我,道長遇伞,這世上最難降的妖魔是什么辙喂? 我笑而不...
    開封第一講書人閱讀 58,791評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮鸠珠,結(jié)果婚禮上巍耗,老公的妹妹穿的比我還像新娘。我一直安慰自己渐排,他們只是感情好炬太,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,794評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著驯耻,像睡著了一般亲族。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上可缚,一...
    開封第一講書人閱讀 51,631評論 1 305
  • 那天霎迫,我揣著相機(jī)與錄音,去河邊找鬼帘靡。 笑死知给,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的测柠。 我是一名探鬼主播炼鞠,決...
    沈念sama閱讀 40,362評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼轰胁!你這毒婦竟也來了谒主?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,264評論 0 276
  • 序言:老撾萬榮一對情侶失蹤赃阀,失蹤者是張志新(化名)和其女友劉穎霎肯,沒想到半個(gè)月后擎颖,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,724評論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡观游,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,900評論 3 336
  • 正文 我和宋清朗相戀三年搂捧,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片懂缕。...
    茶點(diǎn)故事閱讀 40,040評論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡允跑,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出搪柑,到底是詐尸還是另有隱情聋丝,我是刑警寧澤,帶...
    沈念sama閱讀 35,742評論 5 346
  • 正文 年R本政府宣布工碾,位于F島的核電站弱睦,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏渊额。R本人自食惡果不足惜况木,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,364評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望旬迹。 院中可真熱鬧火惊,春花似錦、人聲如沸舱权。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,944評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽宴倍。三九已至,卻和暖如春仓技,著一層夾襖步出監(jiān)牢的瞬間鸵贬,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,060評論 1 270
  • 我被黑心中介騙來泰國打工脖捻, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留阔逼,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,247評論 3 371
  • 正文 我出身青樓地沮,卻偏偏與公主長得像嗜浮,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子摩疑,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,979評論 2 355

推薦閱讀更多精彩內(nèi)容

  • Mapping 類似于數(shù)據(jù)庫中的表結(jié)構(gòu)定義危融,主要作用如下: 定義Index下字段名(Field Name) 定義字...
    小旋鋒的簡書閱讀 18,063評論 0 14
  • 1、MySQL 數(shù)據(jù)類型 MySQL中定義數(shù)據(jù)字段的類型對你數(shù)據(jù)庫的優(yōu)化是非常重要的雷袋。 MySQL支持多種類型吉殃,大...
    garvin閱讀 545評論 0 1
  • 前幾天,天兒出奇的好!萬里無云蛋勺,碧空萬里瓦灶。正趕上老家正月二十四老會,孩兒他爹嚷嚷著去趕老會吧抱完,順便看看父母贼陶。我們就...
    靈雨潤物閱讀 358評論 0 1
  • 有一個(gè)期待叫降溫, 有一個(gè)愿望叫下雨巧娱, 有一個(gè)盼望叫涼快每界, 有一個(gè)等待叫秋天。
    money123閱讀 343評論 0 0
  • 第四章 成長記憶 第一集 服裝展 星期天春和日麗的上午家卖,我一大早就去找媽媽眨层,只見她拿著花紅柳綠的碎布在縫紉機(jī)上拼接...
    流過一紙荒唐淚閱讀 729評論 0 0