• Elasticsearch的概述和安装以及常见概念


    1、ElasticSearch概述

    ElasticSearch是一款搜索引擎

    1.1什么是搜索?

    概念:用户输入想要的关键词,返回含有该关键词的所有信息。
    场景:
    1.互联网搜索:谷歌、百度、各种新闻首页
    2.站内搜索(垂直搜索) : 企业OA查询订单、人员、部门,电商网站内部搜索商品(淘宝、京东)
    场景。

    1.2数据库搜索的弊端

    1.2.1 站内搜索(垂直搜索)数据量小,简单搜索可以使用数据库

    问题出现:
    1、存储问题。电商网站商品上亿条时,涉及到单表数据过大必须拆分表,数据库磁盘占用过大必须分
    库(mycat)。
    2、性能问题:解决上面问题后,查询"笔记本电脑”等关键词时,上亿条数据的商品名字段逐行扫描,
    性能跟不国。
    3、不能分词。如搜索“笔记本电脑”,只能搜索完全和关键词一样的数据,那么数据量小时,搜索“笔记电脑”,“电脑”数据要不要给用户。

    1.2.2 互联网搜索,肯定不能使用数据库搜索。数据量太大,PB级

    我们可以使用搜索引|擎来解决数据库搜索的问题:

    搜索也是一 款数据库, 搜索可以进行分词搜索---搜索速度非常快

    1.3 常见的搜索引擎

    ElasticSearch和Solr

    1.es基本是开箱即用(解压就可以用!)【南京】 ,非常简单。Solr安装略微复杂一丢丢!

    2.当实时建立索引时, Solr会产生io阻塞,查询性能较差, ElasticSearch具有明显的优势

    3.随着数据量的增加,Solr的搜索效率会变得更低,而ElasticSearch却没有明显的变化

    总结
    1、es基本是开箱即甩(解压就可以用!) , 非常简单。so1r安装略微复杂一丢丢!
    2、sor利用Zookeeper 进行分布式管理,而Elasticsearch自身带有分布式协调管理
    功能
    .
    3、So1r 支持更多格式的数据,比如JSON、XML、 CSV ,而Elasticsearch仅支持json文件格
    式。
    4、Solr官方提供的功能更多,而Elasticsearch本身更注重于核心功能,高级功能多有第三方
    插件提供,例如图形化界面需要kibana友好支撑
    5.So1r查询快,但更新索引时慢(即插入删除慢),用于电商等查询多的应用;
    ES建立索引快(即查询慢),即实时性查询快,用于facebook新浪等搜索。
    so7r是传统搜索应用的有力解决方案,但Elasticsearch 更适用于新兴的实时搜索应用。
    6、so1r比较成熟,有一个更大,更成熟的用户、开发和贡献者社区,而Elasticsearch相对开发
    维护者较少,更新太快,学习使用成本较高。

    1.4 ElasticSearch是什么

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

    1.5 ElasticSearch的使用场景

    国外:

    • 维基百科,类似百度百科,“网络七层协议”的维基百科,全文检索,高亮,搜索推荐
    • Stack Overflow (国外的程序讨论论坛), 相当于程序员的贴吧。遇到it问题去上面发帖,热心网友下面回帖解答。
    • GitHub (开源代码管理) , 搜索上千亿行代码。
    • 电商网站,检索商品
    • 日志数据分析,logstash采集日志,ES进行复杂的数据分析(ELK技术,elasticsearch+logstash+kibana)
    • 商品价格监控网站,用户设定某商品的价格阈值,当低于该阈值的时候,发送通知消息给用户,比如说订阅《java编程思想》的监控,如果价格低于27块钱,就通知我,我就去买。
    • BI系统,商业智能(Business Intelligence)。大型连锁超市,分析全国网点传回的数据,分析各个商品在什么季节的销售量最好、利润最高。成本管理,店面租金、员工工资、负债等信息进行分析。从而部署下一个阶段的战略目标。

    国内:

    • 百度搜索,第一次查询,使用es。
    • OA、ERP系统站内搜索。
    es: 搜索的一款数据库,支持的数据格式 json。

    2、elasticSearch安装

    2.1安装JDK,至少1.8.0_73以上版本,验证:java -version

    2.2下载和解压缩Elasticsearch安装包,查看目录结构。

    官网: https://www.elastic.co/cn/downloads/elasticsearch
    下载地址: https://www.elastic.co/cn/downloads/
    历史版本下载: https://www.elastic.co/cn/downloads/past-releases/

    解压后,进入 bin 文件目录,点击 elasticsearch.bat 文件启动 ES 服务 。
    注意: 9300 端口为 Elasticsearch 集群间组件的通信端口, 9200 端口为 浏览器访问的 http 协议 RESTful 端口。
    打开浏览器,输入地址: http://localhost:9200 ,测试返回结果,返回结 果如下:
    1. {
    2. "name" : "DESKTOP-1GJTPOC",
    3. "cluster_name" : "elasticsearch",
    4. "cluster_uuid" : "GpBJPC8JTvuJ9GJRhN-COQ",
    5. "version" : {
    6. "number" : "7.6.1",
    7. "build_flavor" : "default",
    8. "build_type" : "zip",
    9. "build_hash" : "aa751e09be0a5072e8570670309b1f12348f023b",
    10. "build_date" : "2020-02-29T00:15:25.529771Z",
    11. "build_snapshot" : false,
    12. "lucene_version" : "8.4.0",
    13. "minimum_wire_compatibility_version" : "6.8.0",
    14. "minimum_index_compatibility_version" : "6.0.0-beta1"
    15. },
    16. "tagline" : "You Know, for Search"
    17. }

    3、windows安装Kibana

    1、kibana es 数据的前端展现,数据分析时,可以方便地看到数据。作为开发人员,可以方便访问 es
    https://www.elastic.co/cn/downloads/
    历史版本下载: https://www.elastic.co/cn/downloads/past-releases/
    2 、下载,解压 kibana
    3 、启动 Kibana bin\kibana.bat
    4 、浏览器访问 http://localhost:5601 进入 Dev Tools 界面。像 plsql 一样支持代码提示。
    5 、发送 get 请求,查看集群状态 GET _cluster/health 。相当于浏览器访问。

    4、ES中常见的概念

    Elasticsearch 面向文档型数据库 ,一条数据在这里就是一个文档。 为了方便大家理解,我们将 Elasticsearch 里存储文档数据和关系型数据库 MySQL 存储数据的概念进行一个类比。
    ES 里的 Index 可以看做一个库,而 Types 相当于表, Documents 则相当于表的行。这里 Types 的概念已经被逐渐弱化, Elasticsearch 6.X 中,一 index 下已经只能包含一个 type Elasticsearch 7.X , Type 的概念已 经被删除了。
  • 相关阅读:
    技术干货|昇思MindSpore初级课程上线:从基本概念到实操,1小时上手!
    【读书笔记】【Effective C++】设计与声明
    Hive的Sort by Order by Distribute by Cluster by
    商超仓库管理系统
    net-java-php-python-校园二手图书销售网站计算机毕业设计程序
    简易版 图书管理系统
    Apache Dubbo的主要项目模块
    Nacos配置管理
    狂神详讲Linux
    大型语言模型的语义搜索(一):关键词搜索
  • 原文地址:https://blog.csdn.net/Dumpling_skin/article/details/126340171