一、简介

1、基于java语言开发的搜素引擎类库

2、具有高性能、易扩展的优点

3、局限性

只能基于java语言开发

类库的接口学习曲线陡峭

原生并不支持水平扩展

二、Elasticseach 的分布式架构

1、集群规模可以从单个扩展至数百个

2、高可用、水平扩展

服务和数据两个维度

3、支持不同的节点类型

支持Hot & Warm 架构

三、Elasticseach 主要功能

1、海量数据的分户式存储以及集群管理

服务与数据的高可用,水平扩展

2、近实时搜索、性能卓越

结构化、全文、地理位置、自动完成

3、海量数据的近实时分析

聚合功能

四、版本的新特性

5.x

1)Lucene 6.x 性能提升,默认打分机制TF-IDF该为BM25

2)支持ingest节点、Painless Scription、Completion suggested 支持、原生的java rest 客户端

  1. Type标记成deprecated,支持keyword类型
  2. 性能优化

内部引擎移除了避免同一问文档并发更新的竞争锁,带来了15%-20%的性能提升

Instant aggregation, 支持分片上聚合的缓存

新增了Profile API

6.x

1)Lucene7.x

  1. 新功能

跨集群复制(CCR)、索引生命周期管理、SQL的支持

  1. 更友好的升级及数据迁移

在主要版本之间的迁移更为简单

全新的基于操作的数据复制框架,可加快恢复数据

  1. 性能优化

有效存储稀疏字段的方法,降低了存储成本

在索引时进行排序、可加快排序的查询性能

7.x
  1. Lucene8.0
  2. 重大改进-正式废除单个索引下多个Type的支持
  3. 7.1开始,Security功能免费使用
  4. ECK -Elasticsearch Operator on Kubernetes
  5. 新功能

New Cluster coordination

Feature-Complete High Level Rest Client

Script Score Query

  1. 性能优化

默认的Primary Shard 数从5改为1,避免Over Sharding

性能优化,更快的Top K

五、Logstash 特性

1、实时解析和转换数据

从IP地址破译出地理坐标

将PLL 数据匿名化,完全排除敏感字段

2、 可扩展

200 多个插件(日志/数据库/Arcsigh/Netflow)

3、 可靠性、安全性

Logstash 会通过持久化队列来保证至少将运行中的事件送达一次

数据传输加密

4、监控

六、ELK应用场景

1、网站搜索、垂直搜索、代码搜索

2、日志管理与分析、安全指标监控、应用性能监控、WEB抓去舆情分

七、日志重要性

1、日志是处理问题的关键点

2、ES提供:日志搜索、格式化分析、全文检索、风险告警

八、ES与数据库集成

1、单独使用ES存储

2、以下情况可以考虑与数据库集成

与现有系统的集成

需要考虑事务性

数据更新频繁

九、指标日志分析


es和搜索引擎 es搜索引擎架构_搜索