Loading

Elasticsearch介绍

Elasticsearch介绍

  • Elasticsearch 是一个基于Lucene的分布式搜索和分析引擎(Java开发,在Apache开源协议)
  • Elasticsearch是一个开源的高扩展的分布式全文检索引擎,它可以近乎实时的存储、检索数据;本身扩展性很好,可以扩展到上百台服务器,处理PB级别的数据
  • 使用Lucene作为其核心来实现所有索引和搜索的功能,但是它的目的是通过简单的RESTful API来隐藏Lucene的复杂性,使得全文检索变得简单
  • 设计用途:用于分布式全文检索,通过HTTP使用JSON进行数据索引,速度快

Lucene与Elasticsearch关系

  • Elasticsearch基于Lucene

Elasticsearch 和 solr比较

  • Solr是Apache Lucene项目的开源企业搜索平台。其主要功能包括全文检索、命中标示、分面搜索、动态聚类、数据库集成,以及富文本(如Word、PDF)的处理。
  • Solr是高度可扩展的,并提供了分布式搜索和索引复制。Solr是最流行的企业级搜索引擎,Solr4 还增加了NoSQL支持。
  • Solr是用Java编写、运行在Servlet容器(如 Apache Tomcat 或Jetty)的一个独立的全文搜索服务器。 Solr采用了 Lucene Java 搜索库为核心的全文索引和搜索,并具有类似REST的HTTP/XML和JSON的API。
  • Solr强大的外部配置功能使得无需进行Java编码,便可对 其进行调整以适应多种类型的应用程序。Solr有一个插件架构,以支持更多的高级定制

Elasticsearch 与 Solr 的比较总结

1. 二者安装都很简单
2. Solr 利用 Zookeeper 进行分布式管理,而 Elasticsearch 自身带有分布式协调管理功能
3. Solr 支持更多格式的数据,而 Elasticsearch 仅支持json文件格式
4. Solr 官方提供的功能更多,而 Elasticsearch 本身更注重于核心功能,高级功能多有第三方插件提供
5. Solr 在传统的搜索应用中表现好于 Elasticsearch,但在处理实时搜索应用时效率明显低于 Elasticsearch
6. Solr 是传统搜索应用的有力解决方案,但 Elasticsearch 更适用于新兴的实时搜索应用

Elasticsearch核心概念

  • Cluster集群:elasticsearch可以运行在多台服务器上,这些服务器的集合称为集群
  • Node节点:集群中的每一台机器叫一个节点
  • Shard分片:当节点不足时,数据可以分为较小的分片,每个分片放到不同的服务器上
  • Replia副本:相当于主从当中的从
  • 全文检索:把搜索关键词根据词的意义进行分词,然后分别创建索引去查询

Elasticsearch特点和优势

  • 分布式实时文件存储,可将每一个字段存入索引,使其可以被检索到。
  • 实时分析的分布式搜索引擎。(分布式:索引分拆成多个分片,每个分片可有零个或多个副本。集群中的每个数据节点都可承载一个或多个分片,并且协调和处理各种操作;负载再平衡和路由在大多数情况下自动完成。)
  • 可以扩展到上百台服务器,处理PB级别的结构化或非结构化数据。
  • 支持插件机制,分词插件、同步插件、Hadoop插件、可视化插件等。

ELK

主要作用是做日志收集和分析

// ELK = elasticsearch + Logstash + kibana
elasticsearch:后台分布式存储以及全文检索
logstash: 日志加工、“搬运工”
kibana:数据可视化展示。
ELK架构为数据分布式存储、可视化查询和日志解析创建了一个功能强大的管理链。 三者相互配合,取长补短,共同完成分布式大数据处理工作。
posted @ 2023-09-05 21:56  hkwJsxl  阅读(24)  评论(0)    收藏  举报