Elasticsearch是Java开发的一个搜索服务器,是一个分布式的搜索引擎。它提供了Restful API接口,启动Elasticsearch服务后,我们可以通过发送Restful的http请求对数据进行增删改查等操作。
Elasticsearch可以作为一个大型的分布式集群,处理PB级数据;它将全文检索、数据分析及分布式结合在一起,实现了数据的实时检索。同时,Elasticsearch还可以处理数据分析,相关度排名等需求。
Elasticsearch主要应用在以下场景:
1. 日志数据的采集与分析
2. 电商网站内商品检索
3. 网站的站内检索
下面介绍下Elasticsearch在python中的使用。
一. 安装(以ubuntu为例):
由于Elasticsearch是使用Java开发的所以需要先安装jdk,ubuntu中一般都自带了openjdk,可以使用java -version查看jdk版本:
![f8e9e636a8777ebbd222efb46467ba54.png](https://i-blog.csdnimg.cn/blog_migrate/f6b1c49ff8a9138acda37b74ae77cdc4.jpeg)
jdk安装完成后,就可以安装Elasticsearch了。需要到Elasticsearch官网(https://www.elastic.co/cn/downloads/)下载安装包,解压到ES的安装目录就可以了。
![23ed84c8a01f5656b1acf4a684284c12.png](https://i-blog.csdnimg.cn/blog_migrate/7c81a9c7109bc5c41d774db5944d7933.jpeg)
点击下载Elasticsearch,然后选择响应的版本即可下载。
下载完成后,执行解压命令tar -zxvf elasticsearch-7.0.0-linux-x86_64.tar.gz,解压到相应目录即可。
解压完成后,进入到安装目录的bin目录,执行./elasticsearch,Elasticsearch就启动成功了。
Elasticsearch官网中还有Kibana,它是一个Elasticsearch的可视化工具,下载、安装、启动的方式与Elasticsearch一样。启动后,访问Kibana的页面如下:
![f65ea20688073c1c321f669ef51976a8.png](https://i-blog.csdnimg.cn/blog_migrate/31a5350df659721a3576230de7b101db.jpeg)
二. Elasticsearch的使用
首先介绍下使用curl发送Restful访问Elasticsearch,再介绍在python中使用Elasticsearch。
Elasticsearch中有index和doc_type的概念,在关系型数据库中就对应数据库与表。
1.查看elasticsearch中的索引
执行命令:
curl 'localhost:9200/_cat/indices?v'
![01ba75fd19440e3ace1c4a0f125bbdc7.png](https://i-blog.csdnimg.cn/blog_migrate/f8512e13024e54db131031b244c85950.jpeg)
2.创建索引
执行命令:
curl -X PUT 'localhost:9200/索引名称'
![805dd515a25f390aa8ff38da899e3768.png](https://i-blog.csdnimg.cn/blog_migrate/56c5a89670a382172d32291723f032d0.jpeg)
3.创建索引同时指定mapping
mapping就相当于关系型数据库中的表结构,mapping中指定每个字段对应的类型,分析器的类型(在一个值存入Elasticsearch时,会有指定的分析器对其进行分析,决定是否对该值分词,并根据什么规则(空格、特殊字符等)分词)。
看一个例子:
curl -X PUT 'localhost:9200/test?pretty' -H 'Content-Type:application/json' -d '{"mappings": {"properties": {"id": {"type": "long"},"age": {"type": "integer"},"time": {"type": "date"},"name": {"type": "keyword"},"desc": {"type": "text