1. 程式人生 > >Python下elasticsearch-rtf與kibana的安裝與整合

Python下elasticsearch-rtf與kibana的安裝與整合

什麼是ElasticSearch ?

ElasticSearch是一個基於 Lucene 的搜尋伺服器。它提供了一個分散式多使用者能力的全文搜尋引擎,基於RESTful web 介面。Elasticsearch 是用 Java 開發的,並作為 Apache 許可條款下的開放原始碼釋出,是當前流行的企業級搜尋引擎。設計用於雲端計算中,能夠達到實時搜尋,穩定,可靠,快速,安裝使用方便。------【百度百科】

由於我們基於 Pyhton在github上有大神已經幫我們提供了資源,集成了許多資源包且安裝簡單:

1.執行環境

        a.JDK8+ 
        b.系統可用記憶體>2G 

JDK要在1.8版本及以上,JDK的安裝這裡不贅述,網上教程很多也不難,要注意設定好環境變數的PATHJAVA_HOME

安裝後在CMD輸入 java -version 檢測是否JDK符合要求:

2. 安裝

大約兩百多M,耐心等待下載完成後解壓:

通過CMD的 cd 命令,切換到該目錄下,記得替換自己的路徑

cd /d D:\Python\elasticsearch-rtf-master\bin

隨後輸入:

elasticsearch.bat

它會自動安裝,並將依賴包一同安裝,安裝過程中會有些卡,安裝完成後出現:

我們可以在瀏覽器中開啟,127.0.0.1:9200  訪問elasticsearch:

出現上述介面,則 elasticsearch-rtf 安裝成功。

----------------------------------------------------------------------------------------------------------------------------------------

head外掛的安裝

        a.安裝nmp 
        b.安裝cnmp(nmp的淘寶映象,在下載依賴包的時候能更快和減少錯誤)
        c.安裝elasticsearch-head外掛

   a.安裝npm

下載完成後直接雙擊安裝包,安裝過程比較簡單這裡省略,安裝完成後在CMD輸入npm,如圖即為安裝成功:

   b.安裝cnpm
這個的安裝就比較簡單,在安裝的npm成功後,直接在CMD中輸入:

npm install -g cnpm --registry=https://registry.npm.taobao.org

等待一會後,安裝成功:

輸入 cnpm,如圖即為成功:

   c. elasticsearch-head 安裝

接下來,開始正式安裝 elasticsearch-head 外掛了。

下載後解壓:

開啟CMD,輸入:

cd /d E:\Downloads\master\elasticsearch-head-master

然後輸入:

cnpm install

它會自動下載所需的相關模組,等待安裝完成後,輸入:

cnpm run start

發現它在9100埠啟用服務,我們開啟後發現:

我們發現這裡,叢集未連線,這是由於elasticsearch預設不允許使用第三方的服務,那麼我們需要修改幾個配置。

Notepad++開啟elasticsearch/config/elasticsearch.yml 這個檔案,用 記事本開啟之後會有奇怪的錯誤,這裡建議Notepad++:

在末尾加上:

http.cors.enabled: true
http.cors.allow-origin: "*"
http.cors.allow-methods: OPTONS, HEAD, GET, POST, PUT, DELETE
http.cors.allow-headers: "X-Requested-With, Content-Type, Content-Length, X-User"

我們 Ctrl+C 先關閉 elasticsearch 服務:

然後再通過 cmd 在對應目錄下輸入elasticsearch.bat,重新啟用服務:

重新開啟 127.0.0.1:9100 ,點選連線,發現這回連線成功了:

----------------------------------------------------------------------------------------------------------------------------------------

kibana的安裝

由於我們用的是 elasticsearch-rft ,核心的ES版本是5.1.1,因此我們kibana也選擇5.1.1,記住二者版本要一致。

ES版本可以在 127.0.0.1:9200 檢視:

在 Kibana 下載頁面中,選擇 5.1.1版本下載:

依舊是下載後解壓:

依舊是CMD中輸入:

cd /d D:\Python\kibana-5.1.1-windows-x86\kibana-5.1.1-windows-x86\bin

然後輸入:

kibana.bat

開啟 127.0.0.1:5601 出現下面介面,那麼就完成了:

----------------------------------------------------------------------------------------------------------------------------------------

elasticsearch-dsl配置

最後就是將 elasticsearch 和Python整合,能通過Python完成對elasticsearch的操作,這裡我們用到了elasticsearch-dsl,

通過命令安裝,elasticsearch-dsl模組,注意版本應與之前安裝的版本一致:

pip install elasticsearch==5.1
pip install elasticsearch-dsl==5.1

開啟 Pycharm,輸入:

from elasticsearch_dsl import DocType, Date, Keyword, Text, Integer
from elasticsearch_dsl.connections import connections

connections.create_connection(hosts=["localhost"])


class TextType(DocType):
    title = Text(analyzer="ik_max_word")
    url = Keyword()
    pubic_date = Date()
    tags = Text(analyzer="ik_max_word")
    content = Text(analyzer="ik_max_word")
    comment_num = Integer()

    class Meta:
        index = "text"
        doc_type = "article"


if __name__ == '__main__':
    TextType.init()

執行後訪問 9100 埠,發現 text 就已經生成了。

寫入資料就比較簡單,將 該類 例項化後直接賦值, 就不細寫了,虛擬碼如下:

instance = TextTyepe()
instance.title = "A title"
instance.url = "url.com"
......

instance.save()  # 將資料儲存