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")

便可

相关文章
相关标签/搜索