1.引言
ElasticSearch是一个开源的全文搜索引擎,是一个基于Lucene的面向文档的数据库,它像mogodb一样将数据按照json格式存储,然后你就可以通过查询获取他们了。
1.1 应用场景
1.1.1 blog系统的文章搜索,
文章可以存储在数据库,数据库将文章同步到ES,用户可以通过搜索框数据搜索关键字找到相关文章。
1.1.2 日志分析
应用日志传入kafka等MQ,logstash采集处理后传入ES,通过kibana界面查询日志,通过Grafana页面观看指标等信息。
2 入门使用
安装参考,启动服务后一般监听9200端口,一般IDE可装插件ElasticSearch,连接本机后可以使用Rest API进行交互。
也可安装kibana,安装启动后http://localhost:5601/app/kibana#/dev_tools/console 有提示补全,更友好
1.1 核心概念
ES就是每个index中有很多的文档doc
概念 | 含义 | 类比数据库 |
---|---|---|
index 索引 | 具有相同结构的文档集合 | Database数据库 |
type 类型 | 索引的逻辑分区 一种类型被定义为具有一组公共字段的文档 7以后默认是_doc |
Table表 |
document 文档 | JSON格式的字符串,类似于mongo中的文档含义,包含kv字段 可搜索的最小单位 |
Row行 |
field 字段 | 文档中包含零个或者多个字段,字段类似于关系数据库中表的列 | Column列 |
term 分词 | 索引词 | 模糊搜素的字面量? |
mapping 映射 | 类似于关系数据库中的表结构 | Schema表结构 |
Query DSL | Domain Specific Language | SQL |
1.2 常用API
API | 样例&解释 |
---|---|
_cluster | Get /_cluster/health # 查看集群状态,绿主备正常,黄主ok无备,红主无 |
_cat | 查看索引和分配等 |
1.2.1 文档增删改查操作
操作类型 | api操作 | 作用 | 类比数据库 |
---|---|---|---|
DDL操作 Index |
PUT school | 创建索引 | 创建数据库school |