120.【ElastiSearch】(一)

本文涉及的产品
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
云原生大数据计算服务 MaxCompute,5000CU*H 100GB 3个月
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
简介: 120.【ElastiSearch】

注意保存以下文件的时候编码格式一定要是UTF-8,否则会报错。

(一)、什么是ElasticSearch(库、表、记录)

只要学不死、就往死里学

1.ElasticSearch是什么

就好比如我们去百度搜索吉士先生.发现百度给我们罗列出来了所有的列表数据。在没有ElasticeSearch技术之前,我们需要使用的是SQL语句的Like特殊关键字,现在我们只需要使用ElasticeSearch技术即可。

在大数据的情况下我们使用模糊查询会效率变得会非常的慢。

ElasticSearch: 搜索!(百度、CSDN、淘宝、电商)。

2.ElasticSearch学习路线

  1. ElasticSearch背景
  2. 货比三家 (slor、search、loosens)
  3. 搭建与安装ElasticSearch
  4. 生态圈
  5. 分词器(ik)
  6. RestFul操作ElasticSearch
  7. CRUD

前期我们可以把ElasticSearch看作成一个数据库,ElasricSearch数据库中有索引文档文档记录。对应的是:记录

  1. SpringBoot集成ElasticSearch
  2. 爬虫爬取数据!
  3. 模拟全文检索

学完之后,只要用到搜索我们就可以使用ElasticSearch技术。建议在大数据的情况下使用ElasticSearch技术

3.聊聊Doug Cutting

1998年9月4日,Google公司在美国成立。正如大家所知道的那样,它是一家做 搜索引擎起家的公司。

随着大数据时代的来临,许多互联网公司面临着搜索引擎的问题。

2003年谷歌发表(Google File System)谷歌文件系统。这是谷歌共公司为了存储海量数据而设计的专用文件系统,2004年Doug Cutting实现了分布式文件存储系统 Nutch

2004年谷歌发表了(MapReduce编程模型),这个模型用于大规模数据集(1TB)的并行分析运算(搜索引擎)。2005年,Dog Cutting又基于MapReduce,在Nutch搜索引擎实现了该功能

生存法则: 不断地学习(虚心学习)、雅虎经验、优胜劣汰。

Lucence 是一套信息检索工具包 、jar包、不包含搜索引擎系统。包含的是: 索引结构、读写索引的工具、排序功能、搜索规则 ... 工具类

4.Lucene 和 ElasticSearch的关系:

ElasticSearch 是基于Lucence做了一些封装和增强(我们上手是十分简单的)

(二)、ElasticSearch概述

1.基本概述

ElasticSearch(简称es)是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,可以几乎实现实时的存储、检索数据;本身扩展性很好可以扩展到上百台服务器上,处理PB级别(大数据时代)的数据。基于restful API接口。ElasticSearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。构建在全文检索开源软件Lucene之上的ElasticSearch,不仅能对海量规模的数据完成分布式检索与检索,还能提供数据聚合分析

2.百度搜索关键字思考

目前百度也正在使用ElasticSearch技术,为什么百度能够全文检索关键字高亮搜索推荐(搜索结果排序-权重)


3.目前都有哪些公司在用ElasticSearch技术

  1. 维基百科、类似于百度百科
  2. The Guardan(国内新闻网站)、类似于搜狐新闻
  3. Stack Overflow(国外的程序异常讨论论坛)
  4. 日志数据分析,ELK技术: elasticsearch+logstash+kibana
  5. 商品价格监控网站: 当商品低于某个价格的时候通知用户
  6. 电商(淘宝、京东)

(三)、ES和solr的差别

1.ElasticSearch 简介

ES是一个实时分布式搜索和分析引擎。它让你以前所未有的速度处理大数据成为可能。

它主要用于全文搜索结构搜索分析以及将这三者混合使用。

Elasticsearch是一个基于Apache Lucene™的开源搜索引擎。无论在开源还是专有领域,Lucene可以被认为是迄今为止最先进性能最好的、功能最全的搜索引擎库

但是,Lucene只是一个库。想要使用它,你必须使用ava来作为开发语言并将其直接集成到你的应用中,更糕的是,Lucene非常复杂,你需要深入了解检索的相关知识来理解它是如何工作的。

ES也是有Java开发并使用Lucene作为其核心来实现所有索引和搜索的功能,但是它的目的式通过简单的RestFul APi来隐藏Lucene的复杂性,从而让全文搜索变得更加简单

2.Slor 简介

Sor 是Apache下的一个顶级开源项目,采用Java开发,它是基于Lucene的全文搜索服务器。Solr提供了比Lucene更为丰富的查询语言,同时实现了可配置、可扩展,并对索引、搜索性能进行了优化

Solr可以独立运行,运行在etty、Tomcat等这些Servlet容器中,Solr 索的实现方法很简单,用 POST 方法向 Solr 服务器发送一个描述 Field 及其内容的 XML 文档,Solr根据xm文档添加、删除、更新索引。Solr 搜索只需要发送 HTTP GET 请求,然后对 Sol返Xml、json等格式的查询结果进行解析,组织页面布局。Sor不提供构建UI的功能,Sor提供了一个管理界面,通过管理界面可以查询Solr的配置和运行情况

solr是基于lucene开发企业级搜索服务器,实际上就是封装了lucene。

Solr是一个独立的企业级搜索应用服务器,它对外提供类似于Web-service的API接口。用户可以通过http请求,向搜索引擎服务器提交一定格式的文件,生成索引;也可以通过提出查找请求,并得到返回结果。

3.ES与Slor的区别

背景:它们都是基于Lucene搜索服务器基础之上开发,一款优秀的,高性能的企业级搜索服务器。【是因为他们都是基于分词技术构建的倒排索引的方式进行查询】

开发语言:Java语言开发

诞生时间:Solr :2004年诞生。ES:2010年诞生。ES 更新【功能越强大】

区别:

  1. 当实时建立索引的时候,solr会产生io阻塞,而es则不会,es查询性能要高于solr
  2. 不断动态添加数据的时候,solr的检索效率会变的低下,而es则没有什么变化。
  3. Solr利用zookeeper进行分布式管理,而es自身带有分布式系统管理功能(免部署)。Solr一般都要部署到web服务器上,比如tomcat。启动tomcat的时候需要配置tomcat与solr的关联。【Solr 的本质 是一个动态web项目】
  4. Solr支持更多的格式数据[xml,json,csv等],而es仅支持json文件格式
  5. Solr是传统搜索应用的有力解决方案,但是es更适用于新兴的实时搜索应用。单纯的对已有数据进行检索的时候,solr效率更好,高于es
  6. Solr官网提供的功能更多,而es本身更注重于核心功能,高级功能多由第三方插件。

(四)、ElasticSearch安装与搭建

1.安装的基本要求

ES安装及head插件安装

声明:JDK 1.8以上,最低要求!ElasticSearch 客户端。界面工具!

Java 开发,ElasticSearch的版本和我们之后对应的Java的核心jar包!版本对应!JDK环境是正常!

2.下载与安装

官网:https://www.elastic.co/cn/elasticsearch/

我们要下载7.6.2版本

具有四个文件

ELK三件客,解压即用‘ 我用的都是 7.6.1的版本

3.window下安装

  1. 解压目录生成如下目录

bin 启动文件

config 配置文件

log4j2 日志配置文件

jvm,options java 虚拟机配置

elasticsearch.yml elasticsearch配置文件 默认端口: 9200

lib 相关jar包

modules 功能模块

plugins 插件!ik 分词器

jvm.options 配置文件查看默认运行内存

C:\Environment\elasticsearch-7.6.2-windows-x86_64\elasticsearch-7.6.2\config

elasticsearch.yml 默认端口

2. 启动

点击 elasticsearch.bat

3. 访问 localhost:9200


相关实践学习
使用阿里云Elasticsearch体验信息检索加速
通过创建登录阿里云Elasticsearch集群,使用DataWorks将MySQL数据同步至Elasticsearch,体验多条件检索效果,简单展示数据同步和信息检索加速的过程和操作。
ElasticSearch 入门精讲
ElasticSearch是一个开源的、基于Lucene的、分布式、高扩展、高实时的搜索与数据分析引擎。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr(也是基于Lucene)。 ElasticSearch的实现原理主要分为以下几个步骤: 用户将数据提交到Elastic Search 数据库中 通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据 当用户搜索数据时候,再根据权重将结果排名、打分 将返回结果呈现给用户 Elasticsearch可以用于搜索各种文档。它提供可扩展的搜索,具有接近实时的搜索,并支持多租户。
相关文章
|
索引
120.【ElastiSearch】(十)
120.【ElastiSearch】
59 1
|
JSON Java 数据格式
120.【ElastiSearch】(六)
120.【ElastiSearch】
59 0
|
自然语言处理 索引
120.【ElastiSearch】(七)
120.【ElastiSearch】
68 0
|
自然语言处理 算法 数据库
120.【ElastiSearch】(四)
120.【ElastiSearch】
55 0
|
存储 监控 关系型数据库
120.【ElastiSearch】(三)
120.【ElastiSearch】
97 0
|
SQL JavaScript 数据可视化
120.【ElastiSearch】(二)
120.【ElastiSearch】
56 0
|
5月前
|
存储 自然语言处理 搜索推荐
【技术解析 | 实践】Havenask分析器
本次分享内容为Havenask的分析器,本次课程主要分为3部分内容(分析器介绍、解释分析器主要配置、实战演示),希望本次通过分享帮助大家更好了解和使用Havenask。
52248 3
【技术解析 | 实践】Havenask分析器
|
4月前
|
网络安全 数据库 Python
常用百宝箱——日志处理
常用百宝箱——日志处理
|
API 索引
120.【ElastiSearch】(九)
120.【ElastiSearch】
50 0
|
NoSQL Java
120.【ElastiSearch】(八)
120.【ElastiSearch】
57 0