elasticsearch安裝以及初始化,並用python訪問

配置好java環境變量java

從官網下載elasticsearch,解壓,進入Elasticsearch目錄python

在linux環境下輸入如下執行命令便可啓動:linux

bin/elasticsearch

 

默認啓動外網是沒法訪問的,須要對配置文件進行修改:windows

vi config/elasticsearch.yml

添加以下內容:瀏覽器

network.host: 0.0.0.0
http.port: 8086

 

 

關閉es再次啓動:(一般來講會遇到以下錯誤,由於es對資源需求量較大,通常linux默認配置並無達到es資源需求)bash

【報錯1】max file descriptors [4096] for elasticsearch process likely too low, consider increasing to at least [65536]elasticsearch

須要修改系統文件/etc/security/limits.conf並添加(或修改)以下行ide

* soft nofile 65536
* hard nofile 131072

其中的*號表明該配置對全部用戶適用spa

注意!修改完後再啓動es會發現錯誤依舊存在,這時候應先退出登陸(windows適用putty遠程登陸linux的用戶應退出putty),再次登陸,方可生效。code

【報錯2】max virtual memory areas vm.max_map_count [65530] likely too low, increase to at least [262144]

須要修改系統文件/etc/sysctl.conf並添加(或修改)以下行

vm.max_map_count=655360

保存退出後,須要運行以下命令使其生效:

sysctl -p

 

此時咱們經過瀏覽器打開頁面,就能訪問ES了:

 

 

若是咱們配置了特殊的端口(例如本文中配置爲8086,而不是默認的9200)應該如何訪問呢?咱們以python爲例:

from datetime import datetime
from elasticsearch import Elasticsearch

es = Elasticsearch(hosts="roc-3:8086")
index = 'my-index3'
doc_type = "test-type"
id_num = 01
es.indices.create(index=index)
es.index(index=index,
         doc_type=doc_type,
         id=id_num,
         body={"any": "data01",
               "timestamp": datetime.now(),
               "quantity": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]}
         )

res = es.get(index=index, doc_type=doc_type, id=id_num)
for k in res.keys():
    print(k, res[k])

只須要把默認的

es = Elasticsearch()

改爲

es = Elasticsearch(hosts="roc-3:8086")

便可

相關文章
相關標籤/搜索