Elasticsearch学习系列之一:基础知识与软件安装

本文涉及的产品
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
简介: 本文主要介绍了Elasticsearch是什么以及解决什么样的问题可以用到它,同时对Elasticsearch的核心概念以及安装做了说明,旨在让大家对Elasticsearch有个初步的认识。

引言

从本文开始主要介绍当下比较火的Elasticsearch相关的内容。学习一项新技术大致会按照这项技术是什么、它可以解决什么问题,如何使用、使用的原理是什么我们能做什么样的拓展这样的套路来进行。那本文主要介绍Elasticsearch是什么以及能解决什么问题。

  • 基本概念
  • Elasticsearch安装
  • 总结

一、基本概念

1、Elasticsearch是什么

Elasticsearch是一个基于Apache Lucene(TM)的开源搜索引擎。它是一个分布式、RESTful 风格的搜索和数据分析引擎。无论在开源还是专有领域,Lucene可以被认为是迄今为止最先进、性能最好的、功能最全的搜索引擎库。

Elasticsearch 是一个分布式、RESTful 风格的搜索和数据分析引擎。Elasticsearch支持分布式,可以轻松扩展至


2、Elasticsearch主要解决什么问题

当数据达到亿级别时,我们想搜索数据


3、Elasticsearch核心概念

下表为关系性数据库与Elasticsearch之间的概念对比,如下所示:

RDBMS Elasticsearch
Table Index(Type)
Row Document
Column Field
Schema Mapping
SQL DSL

NRT(Near Realtime)

Elasticsearch是近实时的,它是个分布式系统,不但要对数据进行持久化同时需要将数据解构 为方便进行全文检索的数据结构。


Node

节点就是Elasticsearch的实例,主要x向外界提供数据的存储以及集群的搜索与索引功能。节点的名字全局唯一。


Cluster

集群,所谓集群即为一个节点或者多个节点的集合。共同提供存储以及全文检索的服务。集群的名称也是全局唯一的,Elasticsearch集群是自组织的,只需要将节点指定为对应集群名称下的节点即可。


Document

所谓文档,即相当于关系型数据库中的一行数据。文档是构建索引的基本单元。譬如一条用户数据、一条订单数据都可以看作为一个文档。文档都是以Json格式进行描述,Json是一种普遍使用的互联网数据格式。在index中可以存储任意数量的文档。


Index

分为两层意思,一是建立索引,而是对应的索引文件。索引一个文档就是存储一个文档到一个索引 (名词)中以便被检索和查询。


Shard and Replicas

Elasticsearch是分布式搜索引擎,每个索引都有一个或多个分片,索引的数据被分配到各个分片上, 这就相当于一堆沙子可以由不同的容器来装。

复制即为分片的备份。


4、Elasticsearch特性

(1)分布式高可用搜索引擎

(2)多租户


支持多个索引

支持索引级别配置

(3)丰富的API


提供HTTP RESTful API接口,便于调用集成

Java 本地 API

所有API都执行自动节点操作重路由

(4)面向文档


不需要预先定义模式

模式可以用来对索引过程进行自定义

(5)可靠的异步写后置,可实现长期持久性


(6)近实时查询


(7)以Lucene库为基础


每个分片都是一个功能齐全的Lucene索引

Lucene的所有功能都很容易通过简单的配置/插件暴露出来

(8)每次操作保持一致性


单文档级别的操作具有原子性、一致性、隔离性和持久性


二、Elasticsearch安装

下载网址:https://www.elastic.co/cn/downloads/

Github地址:https://github.com/elastic/elasticsearch

Elasticsearch安装目录如下:

目录名称 配置文件 功用描述
bin 包含很多脚本文件,如启动脚本等,安装插件还有其他
config elasticsearch.yml 集群配置文件、user等配置信息
jdk java运行环境
data path.data 运行数据文件
lib path.data java的类库
logs path.log 相关日志文件
plugins 包含所有已安装插件

三、总结

本文主要介绍了Elasticsearch是什么以及解决什么样的问题可以用到它,同时对Elasticsearch的核心概念以及安装做了说明,旨在让大家对Elasticsearch有个初步的认识。

相关实践学习
利用Elasticsearch实现地理位置查询
本实验将分别介绍如何使用Elasticsearch7.10版本进行全文检索、多语言检索和地理位置查询三个Elasticsearch基础检索子场景的实现。
ElasticSearch 入门精讲
ElasticSearch是一个开源的、基于Lucene的、分布式、高扩展、高实时的搜索与数据分析引擎。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr(也是基于Lucene)。 ElasticSearch的实现原理主要分为以下几个步骤: 用户将数据提交到Elastic Search 数据库中 通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据 当用户搜索数据时候,再根据权重将结果排名、打分 将返回结果呈现给用户 Elasticsearch可以用于搜索各种文档。它提供可扩展的搜索,具有接近实时的搜索,并支持多租户。
相关文章
|
JSON Ubuntu Java
Elasticsearch聚合学习之四:结果排序
在前面的实战中,聚合的结果以桶(bucket)为单位,放在JSON数组中返回,这些数据是没有排序的,今天来学习如何给这些数据进行排序
358 0
Elasticsearch聚合学习之四:结果排序
|
2月前
|
存储 缓存 自然语言处理
Elasticsearch框架学习的难点和重点有哪些
Elasticsearch是基于Lucene的开源搜索引擎,广泛应用于全文检索和日志分析。学习重点包括理解节点、集群、索引、分片和副本等基本概念,掌握数据索引、查询DSL、聚合和性能优化。倒排索引和分词器是全文搜索的核心,集群管理和监控对于稳定性至关重要。实践中需根据数据量和查询模式优化分片策略,利用缓存提升搜索性能。学习Elasticsearch要结合实际项目,关注官方文档和社区资源。【5月更文挑战第6天】
|
2月前
|
人工智能 架构师 开发者
大模型时代,该如何更好的学习 Elasticsearch?
大模型时代,该如何更好的学习 Elasticsearch?
28 0
|
2月前
|
存储 网络协议 Java
玩转Elasticsearch—基础知识
玩转Elasticsearch—基础知识
36 0
|
11月前
|
SQL JSON 自然语言处理
Elasticsearch学习随笔与Scrapy中Elasticsearch的应用
Elasticsearch学习随笔与Scrapy中Elasticsearch的应用
|
12月前
|
存储 自然语言处理 负载均衡
Elasticsearch基础知识补齐
Elasticsearch基础知识补齐
112 0
|
存储 负载均衡 网络协议
玩转Elasticsearch—基础知识
玩转Elasticsearch—基础知识
|
Java API Maven
ElasticSearch学习(三):Java API操作ElasticSearch
ElasticSearch学习(三):Java API操作ElasticSearch
199 0
ElasticSearch学习(三):Java API操作ElasticSearch
|
关系型数据库 数据库 索引
ElasticSearch学习(一):HTTP操作ElasticSearch
为了操作方便,我直接使用了Windows下的ElasticSearch。需要注意的一点是,ElasticSearch8以上的版本是基于java17的。 我使用的是7.6.2的版本。下载好压缩包之后,解压,进入bin目录,双击elasticsearch.bat文件即可启动。
243 0
ElasticSearch学习(一):HTTP操作ElasticSearch
|
安全 Linux 网络安全
ElasticSearch学习(四)——Linux 单节点部署
ElasticSearch学习(四)——Linux 单节点部署
299 0
ElasticSearch学习(四)——Linux 单节点部署