具体请参考官方文档 ->
Elasticsearch Referencehtml
Elasticsearch 是一个基于 Lucene 的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于 RESTful web 接口。Elasticsearch 是用 Java 开发的,并做为 Apache 许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,可以达到实时搜索,稳定,可靠,快速,安装使用方便。node
一、开发模式git
可使用如下命令快速启动Elasticsearch以进行开发或测试:github
$ docker run -p 9200:9200 -p 9300:9300 -d --name es -e "discovery.type=single-node" docker.elastic.co/elasticsearch/elasticsearch:6.5.3 # 集成ik插件 $ docker run -p 9200:9200 -p 9300:9300 -d --name es -e "discovery.type=single-node" bachue/elasticsearch-ik:6.2.4
二、生产模式web
该vm.max_map_count
内核设置须要至少设置为2 62144
用于生产。根据您的平台:docker
Linux的数据库
该vm.max_map_count
设置应在/etc/sysctl.conf中永久设置:跨域
$ grep vm.max_map_count /etc/sysctl.conf vm.max_map_count=262144
要在实时系统类型上应用该设置: sysctl -w vm.max_map_count=262144
安全
三、安装成功后便可访问bash
一、ElasticHD 是一款 Elasticsearch的可视化应用(无需配置elasticsearch.yml
)
$ docker run -p 9800:9800 -d --link es --name elastichd containerize/elastichd
二、elasticsearch-head是elasticsearch的一个集群管理工具(须要配置elasticsearch.yml
该插件能直接对 Elasticsearch 的数据进行增删改查,所以存在安全性的问题。建议生产环境下不要使用该插件!)
for Elasticsearch 5.x: docker run -d --name es-head -p 9100:9100 --link es docker.io/mobz/elasticsearch-head:5
# 安装es版本5 不然部分操做没法正常使用(没法新建索引等) docker run -p 9200:9200 -p 9300:9300 -d --name es -e "discovery.type=single-node" elasticsearch:5es默认不支持跨域访问的,因此须要从新配置:
Ⅰ、进入容器
docker exec -it es bashⅡ、在
elasticsearch.yml
配置文件中加入一下内容,而后重启服务。http.cors.enabled: true http.cors.allow-origin: "*" # 没法使用vi, 重定向方式完成 echo "http.cors.enabled: true" >> elasticsearch.yml echo "http.cors.allow-origin: \"*\"" >> elasticsearch.yml
单个 es 实例称为一个节点(node) , 一组节点构成一个集群(cluster)。
含有相同属性的文档集合 - > es会索引全部字段,通过处理后写入一个反向索引(Inverted Index)。查找数据的时候,直接查找该索引(必须小写)。
每一个索引都有多个分片,每一个分片都是 Lucene 索引
拷贝一份分片就完成分片的副本
索引能够定义一个或多个类型,文档必须属于一个类型
Index 里面单条的记录称为 Document(文档)。许多条 Document 构成了一个 Index。
Document 使用 JSON 格式表示,下面是一个例子。
{ "user": "张三", "title": "工程师", "desc": "数据库管理" }
同一个 Index 里面的 Document,不要求有相同的结构(scheme),可是最好保持相同,这样有利于提升搜索效率。
Elasticsearch 支持 RESTFUL 风格 API,其 API 基本格式以下:
http://<ip>:<port>/<索引>/<类型>/<文档id>
5.1 建立索引
为了方便测试,咱们使用 ARC工具进行接口的请求。
5.1.1 建立一个非结构化的索引,须要使用 PUT 请求。例如建立一个名为 book 的索引。
5.1.2 建立一个结构化的索引
5.3.1 指定id
5.3.2 不指定 ID ,须要使用 POST 请求
修改数据,须要使用 POST 请求,且 URL 须要添加 _update
条件查询,须要使用 POST 请求