ES是什么?ES的使用场景有哪些?分词器??

发布于:2024-04-22 ⋅ 阅读:(182) ⋅ 点赞:(0)

一、ES是什么???

1、Elasticsearch 是一个基于 Apache Lucene 构建的开源分布式搜索引擎分析引擎。同时还可以被视为一种特殊的数据库,具体而言,它是一种分布式、面向文档的NoSQL数据库,专为全文搜索数据分析而设计。

2、Elasticsearch 的核心特点包括:

  1. 全文搜索:支持对各种类型的数据(包括结构化、半结构化和非结构化文本数据)进行快速高效的全文本搜索。

  2. 分布式:数据在集群中的多个节点间分布和复制,确保高可用性和容错性,同时也支持水平扩展,以应对更大的数据量和更高的并发访问。

  3. 实时性:数据一旦写入 Elasticsearch,几乎可以立即被搜索到,提供近乎实时的搜索体验。

  4. 分析能力:内置丰富的数据分析工具,包括聚合分析(Aggregations)和其他统计功能,便于用户对数据进行深入挖掘和洞察。

  5. 多租户:支持索引级别的隔离,每个索引可以配置分片数量和副本数量,以满足不同业务场景的需求。

  6. RESTful API:通过 HTTP/HTTPS 协议提供 JSON 格式的 REST API 接口,易于与其他系统集成,支持多种开发语言调用。

  7. 灵活的文档模型:无需预定义严格的表结构,而是采用动态 schema 或映射,可以根据文档内容自动识别数据类型和结构

3、什么场景会用到Elasticsearch

  1. 全文搜索

    1. 电商搜索:快速查找商品信息,支持模糊匹配、关键词高亮显示、过滤、排序等功能。

    2. 站内搜索:网站内部的页面、文章、博客等内容的搜索,提供类似Google的搜索体验。

    3. 文档管理系统:企业级文档搜索,如办公文档、合同、法律文件等的高效检索。

    4. 论坛和社交媒体:用户发表的内容搜索,如帖子、评论、话题等。

  2. 日志分析与监控

    1. 服务器日志:收集、索引和分析服务器产生的各类日志,用于故障排查、性能优化、安全审计等。

    2. 应用日志:跟踪应用程序的行为,帮助开发人员迅速定位错误、诊断问题。

    3. 运维监控:收集系统指标、网络流量数据,实时或历史数据分析,可视化展示系统状态和趋势。

  3. 数据分析

    1. 业务分析:实时或批量分析业务数据,生成报表,进行趋势分析、关联分析等。

    2. 时序数据分析:存储和分析时间序列数据,例如设备传感器数据、用户行为数据等。

  4. NoSQL JSON文档数据库

    1. 作为JSON文档数据库使用,存储和检索半结构化数据,支持地理位置查询和混合查询。

  5. 搜索推荐

    1. 实现个性化搜索和推荐功能,根据用户的搜索历史和行为模式,智能推荐相关内容。

  6. 地理信息系统

    1. 存储和查询带有地理位置信息的数据,构建地图应用、位置服务等相关功能。

  7. 大规模监控系统

    1. 结合Logstash和Kibana,搭建ELK Stack,进行大规模分布式环境下的日志集中管理、实时分析和可视化展示

二、分词器是什么???

1、分词器是对输入的文本进行分析,将其分解成一系列有意义的词汇。

2、分词器是 Elasticsearch 实现高效全文搜索和文本分析的基础工具,决定了索引数据的结构和查询处理的精度。

3、IK分词器是针对中文文本分析的Elasticsearch插件,提供了两种主要的分词模式:ik_smart(精炼/少) 和 ik_max_word(详细/多)。