0X00、什么是ES
Elasticsearch是一个基于Lucene库的搜索引擎。它提供了一个分布式、支持多租户的全文搜索引擎,具有HTTP Web接口和无模式JSON文档。Elasticsearch是用Java开发的,并在Apache许可证下作为开源软件发布。官方客户端在Java、.NET(C#)、PHP、Python、Apache Groovy、Ruby和许多其他语言中都是可用的。--维基百科
在知乎上有篇文章讲挺不错的: 终于有人把Elasticsearch原理讲透了!
0X01、安装启动
本教程是在mac本地启动一个Elasticsearch节点用来测试,如需要多节点部署参考: 使用 Docker 快速部署 Elasticsearch 集群
本教程所需环境:
- Mac
- Docker
- Python3
- Elasticsearch:6.7.0
Docker和Python3的安装教程参考:
- Docker 教程| 菜鸟教程
- Python3 教程| 菜鸟教程
1、下载镜像
docker pull docker.elastic.co/elasticsearch/elasticsearch:6.7.0
2、启动容器
"discovery.type=single-node" docker.elastic.co/elasticsearch/elasticsearch:6.7.0
ElasticSearch的默认端口是9200,我们把宿主环境9200端口映射到Docker容器中的9200端口,就可以访问到Docker容器中的ElasticSearch服务了,同时我们把这个容器命名为es。
3、查看结果
在浏览器打开:http://127.0.0.1:9200,出现以下信息说明启动成功。
查看ES节点信息:http://127.0.0.1:9200/_cat/nodes?v
4、常用插件
a、Elasticsearch Head
elasticsearch-head 官方地址
elasticsearch-head 是用于监控 Elasticsearch 状态的客户端插件,包括数据可视化、执行增删改查操作等。从官方可以了解到重要信息,5.x 版本后,不再支持插件方式启动 必须作为独立服务器运行。
我这里使用的是Chrome插件方式进行安装。
2、analysis-ik
elasticsearch-analysis-ik 官方地址
elasticsearch-analysis-ik 是一个分词器,能够很好的支持中文分词,elasticsearch自带分词器对中文不友好。
# 进入容器
docker
0X02、Python API
这里可以查看崔庆才的博文:Elasticsearch 基本介绍及其与 Python 的对接实现
0X03、参考
- Wiki Elasticsearch