es筆記---新建es索引

es對索引的一堆操作都是用restful api去進行的,參數(shù)時一堆json讯嫂,一年前邊查邊寫搞過一次,這回搞遷移兆沙,發(fā)現(xiàn)es都到6.0版本了欧芽,也變化了很多,寫個小筆記記錄一下葛圃。

創(chuàng)建一個es索引很簡單千扔,一個put請求。

PUT /my_index
{
    "settings": { ... any settings ... },
    "mappings": {
        "type_one": { ... any mappings ... },
    },
  "aliases" : {...}
}

新建一個索引库正,包含settings mappings 和aliases昏鹃。settings設(shè)置分片等一些參數(shù),mappings設(shè)置如何處理索引的各個type诀诊,aliases以前沒有用過洞渤,看上去我不太會用到,這邊就不記錄了属瓣。

settings

這邊有非常多的參數(shù)可以設(shè)置载迄,不過官方是不建議修改的。常見需要改的就倆

  • number_of_shards
    每個索引的主分片數(shù)抡蛙,默認值是 5 护昧。這個配置在索引創(chuàng)建后不能修改。
  • number_of_replicas
    每個主分片的副本數(shù)粗截,默認值是 1 惋耙。對于活動的索引庫,這個配置可以隨時修改熊昌。
PUT /my_temp_index
{
    "settings": {
        "number_of_shards" :   3,
        "number_of_replicas" : 2
    }
}

給索引設(shè)置settings值

PUT /my_temp_index/_settings
{
    "number_of_replicas": 1
}

修改settings值

mappings

每個文檔都有type绽榛,每種type都會有自己的mapping。mapping定義了type的field婿屹,每個field的數(shù)據(jù)類型灭美,以及es如何處理這些field。

注意昂利,一個mappings里邊不建議有多個type届腐,而且在es6之后的版本很有可能會不允許有多個type。

按照官方的計劃蜂奸,es7-es9會逐步去掉type

建議是每個index都只有一個type犁苏,原因是一個index中的各個type的字段并不是完全獨立的,一個index中多個type會造成一些浪費扩所。

可以通過/_mapping 來查看es中一個或多個索引中的一個或多個mapping围详。

數(shù)據(jù)類型 (field)

  • 字符串 string
    • text
    • keyword
  • 數(shù)字
    • long integer short byte double float half_float scaled_float
  • 布爾型 boolean
  • 日期 date
  • range
    • integer_range
    • float_range
    • long_range
    • double_range
    • date_range
  • array
  • object

還有很多我確定我不會用到的類型。

當索引一個包含新的field的文檔時碌奉,es會使用<b>動態(tài)映射</b>短曾,通過JSON中基本數(shù)據(jù)類型寒砖,嘗試猜測field類型

一般情況下,默認映射就足夠了嫉拐。es會自動把如 123 映射為integer哩都,123.123映射為double,但是很多情況下婉徘,我們都需要自定義映射漠嵌,特別是string類型。

自定義映射可以做這些事:

  • 配置為全文字符串和精確字符串 (如name字段我更希望他不要分詞盖呼,而desc字段更需要分詞后搜索)
  • 使用特定語言分析器
  • 儒鹿。。几晤。

一個field最主要的屬性是type约炎,對于大部分field,一般只需要設(shè)置type就可以了:

{
    "number_of_clicks": {
        "type": "integer"
    }
}

range

PUT range_index
{
  "mappings": {
    "my_type": {
      "properties": {
        "expected_attendees": {
          "type": "integer_range"
        },
        "time_frame": {
          "type": "date_range", 
          "format": "yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis"
        }
      }
    }
  }
}

插入格式

PUT range_index/my_type/1
{
  "expected_attendees" : { 
    "gte" : 10,
    "lte" : 20
  },
  "time_frame" : { 
    "gte" : "2015-10-31 12:00:00", 
    "lte" : "2015-11-01"
  }
}

搜索格式

POST range_index/_search
{
  "query" : {
    "range" : {
      "time_frame" : { 
        "gte" : "2015-10-31",
        "lte" : "2015-11-01",
        "relation" : "within" 
      }
    }
  }
}

這部分比較簡單 不細致展開了

string

對于string類型,以前是只有string,現(xiàn)在分為了兩種狮荔,keyword和text

text

text會先經(jīng)過分析器,然后索引起來狸捕,類似desc這樣的字段就需要使用text。有以下幾個重要字段众雷。

analyzer

分析器灸拍,可以指定如何處理這個string,比如我想先把所有html的標記全去掉砾省,再分詞鸡岗,再刪除無用的停頓次,然后把剩下的token索引起來纯蛾∠朔浚可以使用默認的standard分析器,也可以指定別的內(nèi)置的分析器翻诉。也可以使用插件安裝的第三份分析器,如ik捌刮,也可以自定義分析器碰煌。

分析器使用起來很簡單

{
    "desc": {
        "type":     "string",
        "analyzer": "ik_smart"
    }
}

其中,ik_smart是已經(jīng)安裝好的第三方分析器绅作。

index

是否設(shè)置為可以搜索芦圾,boolean

norm

我理解是算分時是否進行一些標準化處理,需要額外的資源俄认。

fields

這個字段很有趣.. 先看個例子

"filename":{  
  "type":"text",
  "norms":false,
  "fields":{  
     "raw":{  
        "type":"keyword",
        "ignore_above":256
     }
  }
},

一個filename的字段个少,這邊設(shè)置的是type是text洪乍,會分詞搜索。但有時候我們需要精準匹配夜焦,就可以使用filename.raw壳澳。插入時只需要輸入filename,保存在es里邊的會有兩份茫经,filename和filename.raw巷波。

keyword

和text不同,keyword不會經(jīng)過分析器卸伞,搜索時會精確匹配抹镊。

index fields

這兩個參數(shù)和text的相同

ignore_above

丟掉超過一定長度的字符串


映射操作
新建映射
PUT /index_name
{
  "mappings": {
    "person" : {
      "properties" : {
        "desc" : {
          "type" :    "string",
          "analyzer": "ik_smart"
        },
        "birth" : {
          "type" :   "date"
        },
        "name" : {
          "type" :   "string",
          "index" : "not_analyzed"
        },
        "user_id" : {
          "type" :   "long"
        }
      }
    }
  }
}

新建一個index,desc字段用ik分詞索引荤傲,birth設(shè)置為日志垮耳,name字段精確索引,user_id設(shè)置為long型遂黍。

更新映射
PUT /index_name/_mapping/person
{
  "properties" : {
    "tag" : {
      "type" :    "string",
      "index":    "not_analyzed"
    }
  }
}

新增一個tag字段终佛。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市妓湘,隨后出現(xiàn)的幾起案子查蓉,更是在濱河造成了極大的恐慌,老刑警劉巖榜贴,帶你破解...
    沈念sama閱讀 218,204評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件豌研,死亡現(xiàn)場離奇詭異,居然都是意外死亡唬党,警方通過查閱死者的電腦和手機鹃共,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,091評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來驶拱,“玉大人霜浴,你說我怎么就攤上這事±陡伲” “怎么了阴孟?”我有些...
    開封第一講書人閱讀 164,548評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長税迷。 經(jīng)常有香客問我永丝,道長,這世上最難降的妖魔是什么箭养? 我笑而不...
    開封第一講書人閱讀 58,657評論 1 293
  • 正文 為了忘掉前任慕嚷,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘喝检。我一直安慰自己嗅辣,他們只是感情好,可當我...
    茶點故事閱讀 67,689評論 6 392
  • 文/花漫 我一把揭開白布挠说。 她就那樣靜靜地躺著澡谭,像睡著了一般。 火紅的嫁衣襯著肌膚如雪纺涤。 梳的紋絲不亂的頭發(fā)上译暂,一...
    開封第一講書人閱讀 51,554評論 1 305
  • 那天,我揣著相機與錄音撩炊,去河邊找鬼外永。 笑死,一個胖子當著我的面吹牛拧咳,可吹牛的內(nèi)容都是我干的伯顶。 我是一名探鬼主播,決...
    沈念sama閱讀 40,302評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼骆膝,長吁一口氣:“原來是場噩夢啊……” “哼祭衩!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起阅签,我...
    開封第一講書人閱讀 39,216評論 0 276
  • 序言:老撾萬榮一對情侶失蹤掐暮,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后政钟,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體路克,經(jīng)...
    沈念sama閱讀 45,661評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,851評論 3 336
  • 正文 我和宋清朗相戀三年养交,在試婚紗的時候發(fā)現(xiàn)自己被綠了精算。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,977評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡碎连,死狀恐怖灰羽,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情鱼辙,我是刑警寧澤廉嚼,帶...
    沈念sama閱讀 35,697評論 5 347
  • 正文 年R本政府宣布,位于F島的核電站倒戏,受9級特大地震影響前鹅,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜峭梳,卻給世界環(huán)境...
    茶點故事閱讀 41,306評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧葱椭,春花似錦捂寿、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,898評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至治笨,卻和暖如春驳概,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背旷赖。 一陣腳步聲響...
    開封第一講書人閱讀 33,019評論 1 270
  • 我被黑心中介騙來泰國打工顺又, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人等孵。 一個月前我還...
    沈念sama閱讀 48,138評論 3 370
  • 正文 我出身青樓稚照,卻偏偏與公主長得像,于是被迫代替她去往敵國和親俯萌。 傳聞我的和親對象是個殘疾皇子果录,可洞房花燭夜當晚...
    茶點故事閱讀 44,927評論 2 355

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

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn)咐熙,斷路器弱恒,智...
    卡卡羅2017閱讀 134,657評論 18 139
  • 概述 搜索引擎應(yīng)該同時支持精確搜索與全文搜索兩種模式。精確搜索是指當文檔指定字段的內(nèi)容與關(guān)鍵字完全相等時棋恼,才會將文...
    為為王閱讀 1,632評論 3 0
  • 刪除索引 用以下的請求來 刪除索引: 對一些人來說返弹,能夠用單個命令來刪除所有數(shù)據(jù)可能會導(dǎo)致可怕的后果。如果你想要避...
    techhow閱讀 1,087評論 0 1
  • 數(shù)度王朝蘸泻,絕代風流琉苇,自古御園。 看秦淮十里悦施,亭臺晚照; 紫金百仞并扇,翠柳含煙。 畫舫樓船抡诞,南朝舊跡穷蛹, 傷心日月?lián)Q人間...
    澧水幽蘭閱讀 923評論 1 15
  • 人人必看-羅輯思維(羅胖)談-如何購買商業(yè)保險的清單 陶慧-----清單作者,理財規(guī)劃師 市面上的保險五花八門昼汗,我...
    道復(fù)有無閱讀 193評論 0 0