01-07-elasticsearch-简介

01-elasticsearch-简介:

Elasticsearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java语言开发的,并作为Apache许可条款下的开放源码发布,是一种流行的企业级搜索引擎。Elasticsearch用于云计算,能够达到实时搜索,稳定,可靠,快速,安装使用方便。官方客户端在Java、.NET(C#)、PHP、Python、Apache Groovy、Ruby和许多其他语言中都是可用的。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr,也是基于Lucene。

数据的结构分类:

1、结构化数据,表,mysql,方便管理和查询

2、非结构化数据,视频,服务器日志,报表等,redis等

3、半结构化数据,将数据的结构和内容混在一起。如果xml,json等

es处理实时数据的处理。

Elasticsearch 是什么

The Elastic Stack, 包括 Elasticsearch、Kibana、Beats 和 Logstash(也称为 ELK Stack)。 能够安全可靠地获取任何来源、任何格式的数据,然后实时地对数据进行搜索、分析和可视 化。Elaticsearch,简称为 ES,ES 是一个**开源的高扩展的分布式全文搜索引擎,**是整个 Elastic Stack 技术栈的核心。它可以近乎实时的存储、检索数据;本身扩展性很好,可以扩展到上百台服务器,处理 PB 级别的数据。

Elasticsearch And Solr ,了解

Lucene 是 Apache 软件基金会 Jakarta 项目组的一个子项目,提供了一个简单却强大的

应用程式接口,能够做全文索引和搜寻。在 Java 开发环境里 Lucene 是一个成熟的免费开源

工具。就其本身而言,Lucene 是当前以及最近几年最受欢迎的免费 Java 信息检索程序库。

但 Lucene 只是一个提供全文搜索功能类库的核心工具包,而真正使用它还需要一个完善的

服务框架搭建起来进行应用。

目前市面上流行的搜索引擎软件,主流的就两款:ElasticsearchSolr,这两款都是基

于 Lucene 搭建的,可以独立部署启动的搜索引擎服务软件。由于内核相同,所以两者除了

服务器安装、部署、管理、集群以外,对于数据的操作 修改、添加、保存、查询等等都十

分类似。

在使用过程中,一般都会将 Elasticsearch 和 Solr 这两个软件对比,然后进行选型。这两

个搜索引擎都是流行的,先进的的开源搜索引擎。它们都是围绕核心底层搜索库 - Lucene

构建的 - 但它们又是不同的。像所有东西一样,每个都有其优点和缺点:

在这里插入图片描述

Elasticsearch 应用案例 (了解)

GitHub**😗* 2013 年初,抛弃了 Solr,采取 Elasticsearch 来做 PB 级的搜索。“GitHub 使用 Elasticsearch 搜索 20TB 的数据,包括 13 亿文件和 1300 亿行代码”。

维基百科:启动以 Elasticsearch 为基础的核心搜索架构

SoundCloud:“SoundCloud 使用 Elasticsearch 为 1.8 亿用户提供即时而精准的音乐搜索

服务”。

百度:目前广泛使用 Elasticsearch 作为文本数据分析,采集百度所有服务器上的各类指

标数据及用户自定义数据,通过对各种数据进行多维分析展示,辅助定位分析实例异常

或业务层面异常。目前覆盖百度内部 20 多个业务线(包括云分析、网盟、预测、文库、

直达号、钱包、风控等),单集群最大 100 台机器,200 个 ES 节点,每天导入 30TB+

数据。

新浪:使用 Elasticsearch 分析处理 32 亿条实时日志。

阿里:使用 Elasticsearch 构建日志采集和分析体系。

Stack Overflow:解决 Bug 问题的网站,全英文,编程人员交流的网站。

Elasticsearch 安装

1 下载软件

Elasticsearch 的官方地址:https://www.elastic.co/cn/

Elasticsearch 最新的版本是 7.11.2(截止 2021.3.10),我们选择 7.8.0 版本(最新版本半

年前的版本)

下载地址:https://www.elastic.co/cn/downloads/past-releases#elasticsearch

Elasticsearch 分为 Linux 和 Windows 版本,基于我们主要学习的是 Elasticsearch 的 Java

客户端的使用,所以课程中使用的是安装较为简便的 Windows 版本。

在这里插入图片描述

2.1.2 安装软件

Windows 版的 Elasticsearch 的安装很简单,解压即安装完毕,解压后的 Elasticsearch 的

目录结构如下

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5wdxCYUB-1668849725055)(png/1620104157547.png)]

解压后,进入 bin 文件目录,点击 elasticsearch.bat 文件启动 ES 服务

注意:9300 端口为 Elasticsearch 集群间组件的通信端口,9200 端口为浏览器访问的 http

协议 RESTful 端口。

打开浏览器(推荐使用谷歌浏览器),输入地址:http://localhost:9200,测试结果

在这里插入图片描述

2.1.3 问题解决

Elasticsearch 是使用 java 开发的,且 7.8 版本的 ES 需要 JDK 版本 1.8 以上,默认安装

包带有 jdk 环境,如果系统配置 JAVA_HOME,那么使用系统默认的 JDK,如果没有配

置使用自带的 JDK,一般建议使用系统配置的 JDK。

双击启动窗口闪退,通过路径访问追踪错误,如果是“空间不足”,请修改

config/jvm.options 配置文件

# 设置 JVM 初始内存为 1G。此值可以设置与-Xmx 相同,以避免每次垃圾回收完成后 JVM 重新分配内存

# Xms represents the initial size of total heap space

# 设置 JVM 最大可用内存为 1G

# Xmx represents the maximum size of total heap space

-Xms1g

-Xmx1g

Elasticsearch 基本操作

1 RESTful

REST 指的是一组架构约束条件和原则。满足这些约束条件和原则的应用程序或设计就

是 RESTful。Web 应用程序最重要的 REST 原则是,客户端和服务器之间的交互在请求之

间是无状态的。从客户端到服务器的每个请求都必须包含理解请求所必需的信息。如果服务

器在请求之间的任何时间点重启,客户端不会得到通知。此外,无状态请求可以由任何可用

服务器回答,这十分适合云计算之类的环境。客户端可以缓存数据以改进性能。 在服务器端,应用程序状态和功能可以分为各种资源。资源是一个有趣的概念实体,它向客户端公开。资源的例子有:应用程序对象、数据库记录、算法等等。每个资源都使用 URI (Universal Resource Identifier) 得到一个唯一的地址。所有资源都共享统一的接口,以便在客 户端和服务器之间传输状态。使用的是标准的 HTTP 方法,比如 GET、PUT、POST 和

DELETE。 在 REST 样式的 Web 服务中,每个资源都有一个地址。资源本身都是方法调用的目 标,方法列表对所有资源都是一样的。这些方法都是标准方法,包括 HTTP GET、POST、 PUT、DELETE,还可能包括 HEAD 和 OPTIONS。简单的理解就是,如果想要访问互联 网上的资源,就必须向资源所在的服务器发出请求,请求体中必须包含资源的网络路径,以 及对资源进行的操作(增删改查)。

postman的安装和使用。基础操作。不做说明

Elasticsearch数据格式

Elasticsearch 是面向文档型数据库,一条数据在这里就是一个文档。为了方便大家理解,

我们将 Elasticsearch 里存储文档数据和关系型数据库 MySQL 存储数据的概念进行一个类比

ES 里的 Index 可以看做一个库,而 Types 相当于表,Documents 则相当于表的行。

这里 Types 的概念已经被逐渐弱化,Elasticsearch 6.X 中,一个 index 下已经只能包含一个

type,Elasticsearch 7.X 中, Type 的概念已经被删除了。

在这里插入图片描述

正向索引。根据索引快速定位。模糊查询或者全文查询,如何匹配。通过主键id关联文档。

id content

======================

1001 my name is zangzan

1002 my name is lisi

倒排索引,通过关键字查询id,在通过id查询文档

可以word id

=======================

name 1001,1002

zhang 1001

id content

======================

1001 my name is zangzan

1002 my name is lisi

倒排索引,通过关键字查询id,在通过id查询文档

可以word id

=======================

name 1001,1002

zhang 1001

参考来自:https://space.bilibili.com/302417610?spm_id_from=333.337.0.0

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值