认识 Elasticsearch
ElasticSearch是一个基于Lucene的搜索服务器,它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口.Elasticsearch是用Java语言开发的, 并作为Apache许可条款下的开放源码发布,是一种流行的企业级搜索引擎.
安装elasticsearch
使用docker安装
拉取elasticsearch镜像
|
|
修改vm.max_map_count参数
|
|
启动容器elasticsearch
|
|
进入容器
|
|
如果进入容器报错,修改数据文件权限,重启
|
|
测试是否启动成功
|
|
基本概念
node和cluster
单个elasticsearch实例称为一个节点,一组节点构成为一个集群cluster
index(索引)
index是es数据管理的顶层单位,相当于mysql的数据库.在es中还有一个名词是倒序索引
,关系型数据库通过增加一个 索引 比如一个 B树(B-tree)
索引 到指定的列上,以便提升数据检索速度.Elasticsearch 和 Lucene 使用了一个叫做 倒排索引 的结构来达到相同的目的. 默认的,一个文档中的
每一个属性都是 被索引 的(有一个倒排索引)和可搜索的.一个没有倒排索引的属性是不能被搜索到的.
document(文档)
document是index里面存储的单条记录,同一个index里面不要求所有的document结构相同
和Elasticsearch进行交互
使用http请求的方式和elasticsearch进行交互
|
|
变量 | 含义 |
---|---|
VERB | 适当的 HTTP 方法 或 谓词 : GET、 POST、 PUT、 HEAD 或者 DELETE. |
PROTOCOL | http 或者 https(如果你在 Elasticsearch 前面有一个 https 代理) |
HOST | Elasticsearch 集群中任意节点的主机名,或者用 localhost 代表本地机器上的节点 |
PORT | 运行 Elasticsearch HTTP 服务的端口号,默认是 9200 |
PATH | API 的终端路径(例如 _count 将返回集群中文档数量)。Path 可能包含多个组件,例如:_cluster/stats 和 _nodes/stats/jvm |
QUERY_STRING | 任意可选的查询字符串参数 (例如 ?pretty 将格式化地输出 JSON 返回值,使其更容易阅读) |
BODY | 一个 JSON 格式的请求体 (如果请求需要的话) |
向索引中添加文档
向company索引中添加employee类型的文档.
|
|
company为索引的名称,employee为文档的类型,1为文档的id.
添加更多的employee
|
|
简单文档检索
查询id为1的employee
|
|
返回结果:
|
|
查询所有的employee
|
|
返回结果(一个搜索默认返回十条结果):
|
|
查询姓氏为Simth的雇员
|
|
返回结果:
|
|
- 原文作者:lsy
- 原文链接:http://kklt1996.gitee.io/blog/post/elasticsearch/2020-03-30-elasticsearch-helloworld/
- 版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议进行许可,非商业转载请注明出处(作者,原文链接),商业转载请联系作者获得授权。