學(xué)習(xí)筆記 | ElasticSearch學(xué)習(xí)筆記(基礎(chǔ))

前言

本文是之前做ElasticSearch技術(shù)測試時的筆記宛官,時間比較久遠(yuǎn)了融击,如有錯誤請指正~

安裝

  1. 官網(wǎng): https://www.elastic.co/downloads/elasticsearch

     curl -L -O https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.5.1.tar.gz
    
  2. 5.5.1版本必須是jdk1.8及以上版本蚣驼,不能用root用戶啟動

     export JAVA_HOME="/usr/java/jdk1.8.0_111"
     export JRE_HOME=$JAVA_HOME/jre
     export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin:/opt/node/bin
     
     #如果設(shè)置了系統(tǒng)代理需要將本地地址添加例外
     export no_proxy="localhost,127.0.0.1"
    
  3. 配置文件

     //ES新增機(jī)器很簡單偿警,只需要改成相同的cluster.name就可以自己識別
     cluster.name: smile-dev
     node.name: smile-1
     path.data: /home/cdh/es/data
     path.logs: /home/cdh/es/logs
     bootstrap.memory_lock: false
     bootstrap.system_call_filter: false
     network.host: 0.0.0.0
    

原理

  1. 倒排索引

    倒排索引兩部分組成:單詞詞典和倒排文件
    倒排列表:記載了出現(xiàn)過某個單詞的所有文檔的文檔列表及單詞在該文檔中出現(xiàn)的位置信息
    單詞詞典:單詞本身的信息及指向“倒排列表”的指針
    分詞:對每個單詞賦予唯一的單詞編號,同時記錄下哪些文檔包含這個單詞
    新文檔解析完畢時苛秕,相應(yīng)的詞典結(jié)構(gòu)也就建立起來了

  2. match肌访、term、match_phrase

  3. 重新索引:創(chuàng)建新的索引艇劫,把文檔從舊的索引復(fù)制到新的索引

  4. 索引主分片數(shù):number_of_shards
    主分片的副本數(shù):number_of_replicas

使用REST API

  1. 查看健康情況

     curl -XGET http://localhost:9200/_cat/health?v
    
  2. 查看節(jié)點(diǎn)

     curl -XGET http://localhost:9200/_cat/nodes?v
    
  3. 查看索引列表

     curl -XGET http://localhost:9200/_cat/indices?v
    
  4. 創(chuàng)建索引

     curl -XPUT http://localhost:9200/customer?pretty
    
  5. 添加數(shù)據(jù)

     curl -XPUT 'localhost:9200/customer/external/1?pretty&pretty' -H 'Content-Type:application/json' -d' {"name": "John Doe"}'
    
  6. 查看數(shù)據(jù)

     curl -XGET 'localhost:9200/customer/external/1?pretty&pretty'
    
  7. 刪除索引

     curl -XDELETE 'localhost:9200/index1?pretty&pretty'
    
  8. 不指定id吼驶,隨機(jī)生成一個ID

     curl -XPOST 'localhost:9200/customer/external?pretty&pretty' -H 'Content-Type: application/json' -d' {"name": "Jane Doe"}'
    
  9. 更新文檔

     //更新文檔并添加age字段
     curl -XPOST 'localhost:9200/customer/external/1/_update?pretty&pretty' -H 'Content-Type: application/json' -d' {"doc": { "name": "Jane Doe", "age": 20 }}'
    
     //通過簡單的腳本更新
     curl -XPOST 'localhost:9200/customer/external/1/_update?pretty&pretty' -H 'Content-Type: application/json' -d' {"script" : "ctx._source.age += 5"}'
    
  10. 刪除文檔

    curl -XDELETE 'localhost:9200/customer/external/2?pretty&pretty'
    
  11. 批量添加

    curl -XPOST 'localhost:9200/customer/external/_bulk?pretty&pretty' -H 'Content-Type: application/json' -d'
    {"index":{"_id":"1"}}
    {"name": "John Doe" }
    {"index":{"_id":"2"}}
    {"name": "Jane Doe" }
    '
    
  12. 批量更新

    curl -XPOST 'localhost:9200/customer/external/_bulk?pretty&pretty' -H 'Content-Type: application/json' -d'
    {"update":{"_id":"1"}}
    {"doc": { "name": "John Doe becomes Jane Doe" } }
    {"delete":{"_id":"2"}}
    '
    
  13. 從文件讀取

    curl -H "Content-Type: application/json" -XPOST 'localhost:9200/bank/account/_bulk?pretty&refresh' --data-binary "@accounts.json"
    
  14. 檢索

    curl -XGET 'localhost:9200/bank/_search?q=*&sort=account_number:asc&pretty&pretty'
    
    curl -XGET 'localhost:9200/bank/_search?pretty' -H 'Content-Type: application/json' -d'
    {
        "query": { "match_all": {} },
        "sort": [
          { "account_number": "asc" }
        ]
    }
    '
    

異常處理

  1. elasticsearch 啟動之后只能在本地訪問

    • 防火墻問題,關(guān)閉防火墻或開啟端口訪問權(quán)限
    • 修改配置文件店煞,network.host: 0.0.0.0
  2. network.host: 0.0.0.0 之后報錯
    錯誤信息

     [1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]
     [2]: max number of threads [1024] for user [cdh] is too low, increase to at least [2048]
     [3]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
     [4]: system call filters failed to install; check the logs and fix your configuration or disable system call filters at your own risk
    

    解決方法:
    error[1]:

     vim /etc/security/limits.conf 
     #添加或修改以下兩行代碼
     * soft nofile 65536
     * hard nofile 131072
    

    limits.conf 修改下后不能生效旨剥,貌似是centos6.8之前的版本問題
    su - cdh 可以使其生效,或者重啟機(jī)器

    error[2]

     vim /etc/security/limits.d/90-nproc.conf
     #修改下邊的1024為2048 浅缸,如第二行所示
     *          soft    nproc     1024      
     *          soft    nproc     2048
    

    error[3]

     vim /etc/sysctl.conf
     #修改或添加         
     vm.max_map_count = 262144
    

    error[4]

     #修改elasticsearch的配置文件
     bootstrap.memory_lock: flase
     bootstrap.system_call_filter: false
    
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末轨帜,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子衩椒,更是在濱河造成了極大的恐慌蚌父,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,546評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件毛萌,死亡現(xiàn)場離奇詭異苟弛,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)阁将,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,224評論 3 395
  • 文/潘曉璐 我一進(jìn)店門膏秫,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人做盅,你說我怎么就攤上這事缤削。” “怎么了吹榴?”我有些...
    開封第一講書人閱讀 164,911評論 0 354
  • 文/不壞的土叔 我叫張陵亭敢,是天一觀的道長。 經(jīng)常有香客問我图筹,道長帅刀,這世上最難降的妖魔是什么让腹? 我笑而不...
    開封第一講書人閱讀 58,737評論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮扣溺,結(jié)果婚禮上骇窍,老公的妹妹穿的比我還像新娘。我一直安慰自己锥余,他們只是感情好像鸡,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,753評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著哈恰,像睡著了一般只估。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上着绷,一...
    開封第一講書人閱讀 51,598評論 1 305
  • 那天蛔钙,我揣著相機(jī)與錄音,去河邊找鬼荠医。 笑死吁脱,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的彬向。 我是一名探鬼主播兼贡,決...
    沈念sama閱讀 40,338評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼娃胆!你這毒婦竟也來了遍希?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,249評論 0 276
  • 序言:老撾萬榮一對情侶失蹤里烦,失蹤者是張志新(化名)和其女友劉穎凿蒜,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體胁黑,經(jīng)...
    沈念sama閱讀 45,696評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡废封,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,888評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了丧蘸。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片漂洋。...
    茶點(diǎn)故事閱讀 40,013評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖力喷,靈堂內(nèi)的尸體忽然破棺而出刽漂,到底是詐尸還是另有隱情,我是刑警寧澤冗懦,帶...
    沈念sama閱讀 35,731評論 5 346
  • 正文 年R本政府宣布爽冕,位于F島的核電站,受9級特大地震影響披蕉,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,348評論 3 330
  • 文/蒙蒙 一没讲、第九天 我趴在偏房一處隱蔽的房頂上張望眯娱。 院中可真熱鬧,春花似錦爬凑、人聲如沸徙缴。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,929評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽于样。三九已至,卻和暖如春潘靖,著一層夾襖步出監(jiān)牢的瞬間穿剖,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,048評論 1 270
  • 我被黑心中介騙來泰國打工卦溢, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留糊余,地道東北人。 一個月前我還...
    沈念sama閱讀 48,203評論 3 370
  • 正文 我出身青樓单寂,卻偏偏與公主長得像贬芥,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子宣决,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,960評論 2 355

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

  • 基礎(chǔ)概念 Elasticsearch有幾個核心概念蘸劈,從一開始理解這些概念會對整個學(xué)習(xí)過程有莫大的幫助。 接近實(shí)時(...
    山天大畜閱讀 2,106評論 0 4
  • 一些概念 索引-index: 一個索引就是一個擁有幾分相似特征的文檔的集合尊沸。比如說昵时,你可以有一個客戶數(shù)據(jù)的索引,另...
    perfect_jimmy閱讀 3,548評論 0 0
  • elasticsearch使用 查看集群健康情況curl 'localhost:9200/_cat/health?...
    小李_a98e閱讀 419評論 0 1
  • 文/Jolin靈 已經(jīng)很久沒有寫過什么文章了椒丧,如果不是今天看qq空間一個好友的文章壹甥,大概我都快忘記,以前的自己和...
    Jolin靈閱讀 275評論 1 2
  • 榛木月月閱讀 248評論 1 2