1. 程式人生 > >windows下elasticsearch以及部分外掛的基本使用

windows下elasticsearch以及部分外掛的基本使用

elasticsearch(新手村教程)

第一次接觸學習elasticsearch,學習過程中遇到了很多的問題,在此和大家分享我初次使用elasticsearch的一些心得和遇到的坑。

(一)elasticsearch

1 windows安裝 elasticsearch(我這裡就只介紹windows的了) 直接在elasticsearch官網下載對應的版本 https://www.elastic.co/downloads/elasticsearch, 下載完成直接解壓到對應的資料夾,直接雙擊elasticsearch.bat,啟動,瀏覽器輸入localhost:9200,顯示如下(如果想通過ip:9200訪問,則需要修改config/elasticsearch.yml檔案裡面的network.host: 0.0.0.0) 在這裡插入圖片描述

至此,雖然安裝完成了elasticsearch,但是大家應該都覺得好像和沒安裝一樣,這裡就像是之前安裝mysql一樣,這裡,我們需要藉助外掛來使用elasticsearch

(二)kibana

Kibana允許您視覺化您的Elasticsearch資料並導航彈性堆疊,在這裡安裝kibana的作用之一是新版本的kibana的視覺化介面,有dev tools可以當做指令碼直接操作elasticsearch,不需要我們下載其他外掛進行操作 進入官網 https://www.elastic.co/downloads/kibana 下載kibana,注意和elasticsearch版本對應,下載完成,解壓到對應的資料夾,修改config/kibana.yml配置檔案,server.port: 5601,server.host: “0.0.0.0”,然後進入bin裡面啟動kibana.bat,啟動成功後直接進入http://localhost:5601,可以看到視覺化介面 在這裡插入圖片描述

左側導航欄有一個Dev Tools按鈕,點選即可進行操作elasticsearch 在這裡插入圖片描述 我這裡進行了一個簡單的查詢一個索引的所有資料

(三)elasticsearch的基本語法

這裡大家可以通過 https://blog.csdn.net/mj86534210/article/details/79910909 去學習elasticsearch的基本語法, 首先我們需要在elasticsearch裡面建立一個索引(類似於資料庫建立一張表) 這裡是在上面的Dev Tools裡面直接操作: POST /good/product { “settings”:{ “number_of_shards”:5, “number_of_replicas”:1 }, “mappings

”:{ “TypeName”:{ “dynamic”:“strict”, “properties”:{ “id”:{“type”:“string”,“store”:“yes”,“index”:“not_analyzed”}, “name”:{“type”:“string”,“store”:“yes”,“index”:“analyzed”,“analyzer”: “ik_max_word”,“search_analyzer”: “ik_max_word”}, “price”:{“type”:“string”,“store”:“yes”,“index”:“analyzed”,“analyzer”: “ik_max_word”,“search_analyzer”: “ik_max_word”}, “count”:{“type”:“string”,“store”:“yes”,“index”:“analyzed”,“analyzer”: “ik_max_word”,“search_analyzer”: “ik_max_word”}, “createTime”:{“type”:“string”,“store”:“yes”,“index”:“analyzed”,“analyzer”: “ik_max_word”,“search_analyzer”: “ik_max_word”}, “delFlag”:{“type”:“string”,“store”:“yes”,“index”:“not_analyzed”} } } } } properties表示表的欄位 type欄位型別,這裡的欄位都設定成了string,是因為在查詢和編碼過程中,有些型別不能很好的被轉換,例如boolean store是否儲存,屬性有yes或者no,無論那種屬性都會被儲存,但如果設定成no,在查詢的時候是無法用此屬性作為查詢項的,基於拓展和業務方便維護,建議使用yes index是否索引,屬性有not_analyzed(分詞不分析)、analyzed(分詞分析)、no(不分析不分詞) analyzer使用哪種分詞器,在安裝es的時候會自己安裝分詞器,例如IK分詞器,在此指定分詞的時候使用的是哪種分詞器 search_analyzer使用哪種分詞器,但不是在入庫的時候,而是在做查詢的時候使用哪種分詞器 ignore_above對超過 ignore_above 的字串,analyzer 不會進行處理;所以就不會索引起來。導致的結果就是最終搜尋引擎搜尋不到了。這個選項主要對 not_analyzed 欄位有用,這些欄位通常用來進行過濾、聚合和排序。而且這些欄位都是結構化的,所以一般不會允許在這些欄位中索引過長的項。 format日期格式要求,例如設定為"yyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis"

dynamic表示是否使用動態對映,屬性有 true預設值,動態新增欄位 false忽略新欄位 strict如果碰到陌生欄位,丟擲異常

settings表示設定(這裡瞭解一下就行) num_of_shards設定分片數量,預設為5 num_of_replicas設定副本數量,預設為1 在這裡插入圖片描述 這裡已經建立了一個簡單的索引,index=good ;type=product 刪除索引:DELETE /good 可以直接刪除對應的索引 或者 DELETE /_all 、DELETE /*刪除所有索引 這裡可以直接往索引裡面新增幾條資料了 PUT /good/product/1 { “id”: “123456”, “name”: “牛肉”, “price”: “65”, “count”: “1”, “createTime”: “2018-10-16 16:56”, “delFlag”: “0” } PUT /good/product/2 { “id”: “123457”, “name”: “牛腩”, “price”: “45”, “count”: “1”, “createTime”: “2018-10-16 16:56”, “delFlag”: “0” } 如果是修改的話需要把所有的屬性都寫上,不然修改之後就只剩修改的資料了 在這裡插入圖片描述 一般執行成功都是比較友好的提示,一般如果你操作錯誤,執行的時候會報異常,看著異常去修改就好了

(四)java專案整合elasticsearch

(五)logstach以及同步mysql的外掛Logstash-input-jdbc

1 直接在elasticsearch官網下載對應的win的版本,注意個之前下載的elasticsearch的版本一致,解壓之後輸入如下命令可以測試是否安裝成功,進到bin目錄下執行:./logstash -e ‘input { stdin { } } output { stdout {} }’ 然後等待數秒,可以輸入任意字元,即可看到對應的輸出 在這裡插入圖片描述 2 安裝logstach-input-jdbc外掛 詳細參照 https://blog.csdn.net/u011781521/article/details/77856331?utm_source=tuicool&utm_medium=referral 不過這裡要注意幾個坑, 1,需要修改Gemfile檔案裡面的內容 在這裡插入圖片描述 在這裡插入圖片描述 2 ,上面連結裡面提到的那個https://rubygems.org/ 已經失效了,現在已經換成了 https://gems.ruby-china.com/ 3 ,安裝好logstach-input-jdbc外掛之後,需要注意的是jdbc.conf裡面output的配置 在這裡插入圖片描述 index對應的就是索引的名字,document_type對應的是type, 前面還會出現的input裡面的type,主要用於多表更新使用 在這裡插入圖片描述 4 記得使用管理員身份執行 至此,輸入命令啟動logstach就行,如果成功則出現如下所示 在這裡插入圖片描述 出現共色標誌的地方,就相當於已經成功了,這個時候,只需要對資料庫進行對應的操作,然後再去elasticsearch裡面檢視,就可以看到結果了,如果這裡執行報錯,可以開啟logs裡面檢視日誌,一般這裡會出錯,則是昂剛才配置的jdbc.conf和jdbc.sql配置錯誤,仔細檢視,修改即可。

時間有限,暫時只是學習到這裡,有可能還有一些地方有問題,有一些地方還沒寫到,之後會慢慢改進,暫時這裡只是作為使用elasticsearch同步資料庫,有疑問可以相互交流,有錯誤之處可以指出。