什么是ElasticSearch ?
ElasticSearch是一个基于 Lucene 的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web 接口。Elasticsearch 是用 Java 开发的,并作为 Apache 许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。------【百度百科】
官网地址:www.elastic.co
由于我们基于 Pyhton在github上有大神已经帮我们提供了资源,集成了许多资源包且安装简单:
elasticsearch-rtf:https://github.com/medcl/elasticsearch-rtf
1.运行环境
a.JDK8+
b.系统可用内存>2G
JDK要在1.8版本及以上,JDK的安装这里不赘述,网上教程很多也不难,要注意设置好环境变量的PATH和JAVA_HOME。
安装后在CMD输入 java -version 检测是否JDK符合要求:
2. 安装
下载地址:https://github.com/medcl/elasticsearch-rtf/archive/master.zip
大约两百多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
官网安装npm:http://nodejs.cn/download/
如果是windows64bit直接单击:https://npm.taobao.org/mirrors/node/v10.13.0/node-v10.13.0-x64.msi
下载完成后直接双击安装包,安装过程比较简单这里省略,安装完成后在CMD输入npm,如图即为安装成功:
b.安装cnpm
这个的安装就比较简单,在安装的npm成功后,直接在CMD中输入:
npm install -g cnpm --registry=https://registry.npm.taobao.org
等待一会后,安装成功:
输入 cnpm,如图即为成功:
c. elasticsearch-head 安装
接下来,开始正式安装 elasticsearch-head 插件了。
下载地址:https://github.com/mobz/elasticsearch-head/archive/master.zip
下载后解压:
打开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的安装
进入官网: https://www.elastic.co/downloads/past-releases
由于我们用的是 elasticsearch-rft ,核心的ES版本是5.1.1,因此我们kibana也选择5.1.1,记住二者版本要一致。
Windows下载链接:https://artifacts.elastic.co/downloads/kibana/kibana-5.1.1-windows-x86.zip
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,
官方文档:https://elasticsearch-dsl.readthedocs.io/en/latest/
通过命令安装,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() # 将数据保存