ElasticSearch入門教程

簡介

ElaticSearch勋颖,簡稱ES梆掸。
ES 是一個開源的高擴(kuò)展的分布式全文檢索引擎,它可以近乎實(shí)時的存儲牙言、檢索數(shù)據(jù)酸钦;
其擴(kuò)展性很好,可擴(kuò)展到上百臺服務(wù)器咱枉,處理PB級別的數(shù)據(jù)卑硫。
ES 使用Java開發(fā)并使用Lucene作為其核心來實(shí)現(xiàn)所有索引和搜索的功能,但是它的目的是通過簡單的RESTful-API來隱藏Lucene的復(fù)雜性蚕断,從而讓全文搜索變得更簡單欢伏。

ES核心基礎(chǔ)概念

  • 1)index-索引
    一個索引就是一個擁有幾分相似特征的文檔的集合,類比mysql中的數(shù)據(jù)庫亿乳;

  • 2)type-類型
    一個type是index索引在邏輯上的一個分類/分區(qū)硝拧,可類比mysql中的表;一個索引中葛假,早期版本中一個index可定義多個type障陶,后期版本逐漸移除;見下文詳述聊训;

    1. filed-字段
      相當(dāng)于MySQL表中的字段抱究,對不同文檔數(shù)據(jù)根據(jù)屬性進(jìn)行的分類標(biāo)識;
  • 4)mapping-映射
    mapping 對于剛?cè)腴TES的同學(xué)來說带斑,比較抽象鼓寺,它用來定義文檔及其包含的字段如何存儲和索引(使用何種存儲類型或索引方式);
    可類比于MySQL的create table 語句勋磕,指定某個字段是int妈候,某個字段是文本,哪個字段使用什么索引等等……
    比如挂滓,mapping中可指定同學(xué)姓名為text類型苦银,并使用ik_smart分詞器進(jìn)行存儲和檢索;

  • 5)document-文檔
    一個document是一個可被索引的基礎(chǔ)信息單元杂彭,類比與MySQL中的一行數(shù)據(jù)墓毒;

ES 與 MySQL 的基本映射關(guān)系如下
MySQL ‐> database ‐> Table ‐> Rows ‐> Columns
ES ‐> index ‐> Type ‐> Documents ‐> Fields

版本變遷

type (類型) 其實(shí)是ES早期版本中的設(shè)計缺陷:

  • 5.x 及以前的版本,一個 index 下面支持創(chuàng)建多個type亲怠,類似于MySQL的一個 database 中創(chuàng)建多個表所计;
  • 6.x 版本改為一個 index 只支持一個 type, 但 type 名稱可自定義;類比于MySQL的一個 database 中只允許創(chuàng)建一個表团秽,但表名可自定義主胧;
  • 7.x 版本叭首,type 默認(rèn)名稱為 _doc,不再支持自定義;
  • 8.x 版本后踪栋,移除 type 定義焙格,可理解為ES本身就是MySQL中一個超大的database,每個index就是其中一個table夷都;

移除 type 定義眷唉,其實(shí)很好理解,本來 type 的設(shè)計就是一種冗余的存在囤官,完全可通過為 index 添加不同后綴來區(qū)分同一業(yè)務(wù)下的不同類型冬阳;

創(chuàng)建索引

官網(wǎng)文檔參考:https://www.elastic.co/guide/en/elasticsearch/reference/6.8/indices-put-mapping.html
1 、創(chuàng)建空索引(類似于創(chuàng)建mysql空庫)

### 創(chuàng)建名為 twitter 的空索引
curl -X PUT "localhost:9200/twitter?pretty" -H 'Content-Type: application/json' -d'{}'
### 創(chuàng)建索引附帶設(shè)置信息等
-d'
{
    "settings" : {
        "number_of_shards" : 1
    },
    "mappings" : {
        "_doc" : {
            "properties" : {
                "field1" : { "type" : "text" }
            }
        }
    }
}
'

2 党饮、為索引添加索引字段(類似于創(chuàng)建mysql表)

## 注:_doc 為默認(rèn)type肝陪,7.x 版本不再支持自定義,8.x 版本后移除
curl -X PUT "localhost:9200/twitter/_mapping/_doc?pretty" -H 'Content-Type: application/json' -d'
{
    "dynamic": "true", ## 允許動態(tài)根據(jù)灌入數(shù)據(jù)創(chuàng)建mapping
    "properties": {
        "auto_id": {
            "type": "long"
        },
        "create_date": {
            "type": "date",
            "format": "yyyy-MM-dd HH:mm:ss||yyyy-MM-dd"
        },
        "student_name": {
            "type": "text", ## 設(shè)定學(xué)生姓名為文本類型
            "fields": {
                "keyword": {
                    "type": "keyword",  ## 為姓名添加 keyword 無分詞索引
                    "ignore_above": 256 ## 最大索引長度256刑顺,即上限
                }
            },
            "analyzer": "ik_smart"  ## 設(shè)定學(xué)生姓名的查詢分詞器
        }
    }
}
'

向索引插入數(shù)據(jù)

1氯窍、 為 Twitter 索引添加名為 ·湯姆克魯斯· 的學(xué)生

## 注:_doc/1?pretty,此處為顯示指定 `id(ES內(nèi)置_id)` 為 1蹲堂,不指定的情況ES會自動生成 `_id` 值狼讨;
curl -X PUT "localhost:9200/twitter/_doc/1?pretty" -H 'Content-Type: application/json' -d'
{
    "student_name" : "湯姆克魯斯",
    "create_date" : "2019-11-15",
    "auto_id" : 111
}
'

查詢索引

1、查詢 Twitter 索引下姓氏為 · 克魯斯· 的學(xué)生贯城,并按創(chuàng)建時間倒序熊楼,同時對檢索命中的結(jié)果做高亮(highlight)展示

curl -X GET "localhost:9200/twitter/_doc/_search?pretty" -H 'Content-Type: application/json' -d'
{
    "sort": {
        "create_date": "desc"
    },
    "highlight": {
        "fields": {
            "student_name": {}
        }
    },
    "query": {
        "term": {
            "student_name.keyword": {
                "value": "克魯斯"
            }
        }
    }
}
'
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市能犯,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌犬耻,老刑警劉巖踩晶,帶你破解...
    沈念sama閱讀 222,000評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異枕磁,居然都是意外死亡渡蜻,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,745評論 3 399
  • 文/潘曉璐 我一進(jìn)店門计济,熙熙樓的掌柜王于貴愁眉苦臉地迎上來茸苇,“玉大人,你說我怎么就攤上這事沦寂⊙埽” “怎么了?”我有些...
    開封第一講書人閱讀 168,561評論 0 360
  • 文/不壞的土叔 我叫張陵传藏,是天一觀的道長腻暮。 經(jīng)常有香客問我彤守,道長,這世上最難降的妖魔是什么哭靖? 我笑而不...
    開封第一講書人閱讀 59,782評論 1 298
  • 正文 為了忘掉前任具垫,我火速辦了婚禮,結(jié)果婚禮上试幽,老公的妹妹穿的比我還像新娘筝蚕。我一直安慰自己,他們只是感情好铺坞,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,798評論 6 397
  • 文/花漫 我一把揭開白布饰及。 她就那樣靜靜地躺著,像睡著了一般康震。 火紅的嫁衣襯著肌膚如雪燎含。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,394評論 1 310
  • 那天腿短,我揣著相機(jī)與錄音屏箍,去河邊找鬼。 笑死橘忱,一個胖子當(dāng)著我的面吹牛赴魁,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播钝诚,決...
    沈念sama閱讀 40,952評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼颖御,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了凝颇?” 一聲冷哼從身側(cè)響起潘拱,我...
    開封第一講書人閱讀 39,852評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎拧略,沒想到半個月后芦岂,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,409評論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡垫蛆,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,483評論 3 341
  • 正文 我和宋清朗相戀三年禽最,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片袱饭。...
    茶點(diǎn)故事閱讀 40,615評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡川无,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出虑乖,到底是詐尸還是另有隱情懦趋,我是刑警寧澤,帶...
    沈念sama閱讀 36,303評論 5 350
  • 正文 年R本政府宣布决左,位于F島的核電站愕够,受9級特大地震影響走贪,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜惑芭,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,979評論 3 334
  • 文/蒙蒙 一坠狡、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧遂跟,春花似錦逃沿、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,470評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至哄尔,卻和暖如春假消,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背岭接。 一陣腳步聲響...
    開封第一講書人閱讀 33,571評論 1 272
  • 我被黑心中介騙來泰國打工富拗, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人鸣戴。 一個月前我還...
    沈念sama閱讀 49,041評論 3 377
  • 正文 我出身青樓啃沪,卻偏偏與公主長得像,于是被迫代替她去往敵國和親窄锅。 傳聞我的和親對象是個殘疾皇子创千,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,630評論 2 359

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

  • 一、ES概述 1.1入偷、ES介紹 ElasticSearch簡稱ES追驴,是一個基于Lucene開發(fā)的 分布式的全文搜索...
    ST_碼閱讀 785評論 0 0
  • 前言: 之前已經(jīng)說過最近正在做數(shù)據(jù)建設(shè),爬取數(shù)據(jù)之后經(jīng)過處理盯串,最終導(dǎo)入到ElasticSearch中氯檐,并編寫公共接...
    Lc_fly閱讀 1,983評論 0 2
  • 相關(guān)依賴: 基于es6.7.2版本操作(基于es6.7.2版本操作)[https://blog.csdn.net/...
    codeduck1閱讀 306評論 0 0
  • Elasticsearch是著名的開源分布式搜索和數(shù)據(jù)處理平臺,是一個基于Lucene的分布式体捏、實(shí)時、全文搜索系統(tǒng)...
    MCNU云原生閱讀 928評論 0 4
  • 1. 核心概念 索引(index)類似的數(shù)據(jù)放在一個索引糯崎,非類似的數(shù)據(jù)放在不同索引几缭,一個索引也可以理解成一個關(guān)系型...
    左師兄zuosx閱讀 372評論 0 0