• ElasticSearch认识及安装


    一、认识ES

    Elasticsearch 是一个基于 Lucene 库的搜索引擎。它提供了一个分布式、支持多租户的全文搜索引擎,具有 HTTP Web 接口和无模式 JSON 文档。Elasticsearch 是用 Java 开发的,并在 SSPL+Elastic License 许可证下作为开源软件发布。官方客户端在 Java、.NET(C#)、PHP、Python、Apache Groovy、Ruby 和许多其他语言中都是可用的。

    (一).基本特点

    1. ES是分布式的,ES也可以单点运行,多节点运行。作为一个大型分布式集群(数百台服务器)技术,处理PB级数据,服务大公司;也可以运行在单机上服务小公司。数据通过分片算法散列在不同的节点上,从而实现高可用,负载均衡、分布式的搜索服务。
    2. ES实现全文检索,Mysql之所以使用比较慢,通过标题,内容字段去匹配。Elasticsearch作为传统数据库的一个补充,提供了数据库所不能提供的很多功能。
    3. ES实时快速
    4. ES对外暴露Restful接口。相较于lucene,对程序员更友好些。对用户而言,是开箱即用的,非常简单,作为中小型的应用,直接3分钟部署一下ES,就可以作为生产环境的系统来使用了,数据量不大,操作不是太复杂。

    (二).与lucene对比

    1.lucene

    Lucene 是一个基于 Java 的全文信息检索工具包,它不是一个完整的搜索应用程序,而是为你的应用程序提供索引和搜索功能。

    使用过程大概如下:

    • 索引流程:即采集数据–>构建文档对象–>分析文档(分词)–>创建索引。
    • 搜索流程:即用户通过搜索界面–>创建查询–>执行搜索,搜索器从索引库搜索–>渲染搜索结果。

    2. ES

    Elasticsearch是一个基于Apache Lucene™的开源搜索引擎

    Lucene只是一个库。想要使用它,你必须使用Java来作为开发语言并将其直接集成到你的应用中,更糟糕的是,Lucene非常复杂,你需要深入了解检索的相关知识来理解它是如何工作的。
    Elasticsearch也使用Java开发并使用Lucene作为其核心来实现所有索引和搜索的功能,但是它的目的是通过简单的RESTful API来隐藏Lucene的复杂性,从而让全文搜索变得简单。

    Lucene是一套信息检索工具包,并不包含搜索引擎系统,它包含了索引结构、读写索引工具、相关性工具、排序等功能,因此在使用Lucene时仍需要关注搜索引擎系统,例如数据获取、解析、分词等方面的东西。而elasticsearch都是基于该工具包做的一些封装。

    (三).ES功能

    Elasticsearch不是什么新技术,主要是将全文检索、数据分析以及分布式技术,合并在了一起,才形成了独一无二的ES。

    (1)分布式的搜索引擎和数据分析引擎

    搜索:百度,网站的站内搜索,IT系统的检索
    数据分析:电商网站,最近7天牙膏这种商品销量排名前10的商家有哪些;新闻网站,最近1个月访问量排名前3的新闻版块是哪些

    分布式,搜索,数据分析

    (2)全文检索,结构化检索,数据分析

    全文检索:我想搜索商品名称包含牙膏的商品,select * from products where product_name like "%牙膏%"
    结构化检索:我想搜索商品分类为日化用品的商品都有哪些,select * from products where category_id='日化用品'

    部分匹配、自动完成、搜索纠错、搜索推荐
    数据分析:我们分析每一个商品分类下有多少个商品,select category_id,count(*) from products group by category_id

    (3)对海量数据进行近实时的处理

    分布式:ES自动可以将海量数据分散到多台服务器上去存储和检索
    海量数据的处理:分布式以后,就可以采用大量的服务器去存储和检索数据,自然而然就可以实现海量数据的处理。

    近实时:检索个数据要花费1小时(这就不要近实时,离线批处理,batch-processing);在秒级别对数据进行

    搜索和分析,跟分布式/海量数据相反的:lucene,单机应用,只能在单台服务器上使用,最多只能处理单台服务器可以处理的数据量。

    (四).当前应用

    在这里插入图片描述

    二、适用场景

    1.构建企业级搜索服务,比如电商系统,知识系统,日志分析等等

    2,当你需要在大量数据之上,用到搜索分析的情况下,可以首先考虑下。

    3.Elasticsearch具有广泛的应用场景,包括全文搜索、日志分析、运维监控、安全分析等。

    三、ES VS Mysql

     ES 6.x版本推荐在一个index中尽量保持一个type。

     四、ES安装与部署

    ES是java源实现的,需要保障服务器有java运行环境。我当前使用的是Es8.4.1,ES依赖JDK,7以上的版本中会自带jdk。我们从下载的安装包里也能看到这点。

     官网链接:免费且开放的搜索:Elasticsearch、ELK 和 Kibana 的开发者 | Elastic

     解压后,点击bat启动ES。

     但是,我点击后,闪退了。

     这个问题不能理解,andriodSDK删除了,还是报这个错,我干脆把ES版本降到7.17.6

    换版本后,再次遇到问题了。

    SecurityNetty4HttpServerTransport] [DESKTOP-0QU7RUU] received plaintext http traffic on an https channel, closing connection Netty4HttpChannel{localAddress=/127.0.0.1:9200

    这个解决后,访问:http://localhost:9200/

    需要注意的是,ES8版本都需要输入用户名和密码。用户名是elastic,密码可以去启动日志中找到。我当前是7所以没有输密码的步骤。

    能访问,说明启动成功。


    为了方便学习ES,还可以安装postman,kibana工具。

    postman:做开发的都知道接口测试工具

    kibana:它是elk技术中的一员。可以轻松地来执行高级的数据分析,可以用丰富的图表对查询结果可视化演示。

    下面主要说安装kibana:

    下载地址:Download Kibana Free | Get Started Now | Elastic

     需要下载与ES版本一致的kibana,至少大版本一致。

    需要注意的是,再启动kibana前,一定要先启动ES。

    kibana访问地址:

  • 相关阅读:
    win10安装配置ssh服务
    免费开源的积分商城系统_积分商城的功能逻辑_OctShop
    MCE | 表观遗传:YTHDF蛋白调节 m6A-RNA
    python矩阵最近邻填充替换
    1.MySQL数据库介绍和基础操作
    七大排序。。。
    RNN基本原理及代码实战
    企业信息系统应急响应预案
    VUE+TS使用elementUI的el-checkbox双重v-for循环做勾选
    领导的潜台词,你读懂了吗?
  • 原文地址:https://blog.csdn.net/heni6560/article/details/126806586