ElasticSearch0基础入门

1. Lucene

Lucene 是一个开源、免费、高性能、纯Java 编写的全文检索引擎,可以算作是开源领域最好的全文检索 工具包

2. ElasticSearch

ElasticSearch (以下简称es)是一个分布式、可扩展、近实时性的高性能搜索与数据分析引擎。ElasticSearch 基于 Java 编写,通过进一步封装 Lucene,将搜索的复杂性屏蔽起来,开发者只需要一套简单的 RESTful API 就可以操作全文检索。

整体上来说,ElasticSearch 有三大功能:

  • 数据搜集
  • 数据分析
  • 数据存储

ElasticSearch 的主要特点:

  1. 分布式文件存储
  2. 实时分析的分布式搜索引擎
  3. 高可拓展性
  4. 可插拔的插件支持

3. 软件安装(Windows版)

3.1 es安装

es官网下载地址:https://www.elastic.co/cn/downloads/elasticsearch
选好对应的版本

如果下载很慢的话,可以用华为的下载地址
ElasticSearch: https://mirrors.huaweicloud.com/elasticsearch/?C=N&O=D
logstash: https://mirrors.huaweicloud.com/logstash/?C=N&O=D
kibana: https://mirrors.huaweicloud.com/kibana/?C=N&O=D
在这里插入图片描述
下载好之后进行解压:
在这里插入图片描述
目录解释:

目录含义
bin可执行文件目录
config可执行文件目录
data数据存储目录
jdkjdk目录
lib第三方依赖库
logs输出日志目录
modules依赖模块目录
plugins插件目录

在bin目录下直接双击elasticsearch.bat 即可运行
在这里插入图片描述
然后浏览器访问localhost:9200 如果访问成功及启动成功(默认端口就是9200
然后可以看到主机名,集群名,es版本等相关信息
在这里插入图片描述
打开 config/elasticsearch.yml 文件,可以配置集群名称以及节点名称。配置方式如下:

#如果没有配置 则默认是elasticsearch
cluster.name: my-application 
node.name: node-1

3.2 HEAD 插件安装

head插件:可以通过可视化的方式查看集群信息

下载插件:

  1. 插件地址:git clone git://github.com/mobz/elasticsearch-head.git

  2. 解压到指定目录
    在这里插入图片描述

  3. 进入目录之后在地址栏打开cmd窗口
    在这里插入图片描述

  4. 指定 npm install 命令

  5. 执行 npm run start 命令即可启动

然后在浏览器中输入 localhost:9100 即可查看

但是,此时看不到集群数据。原因在于这里通过跨域的方式请求集群数据的,默认情况下,集群不支持跨域,所以这里就看不到集群数据。
解决办法如下,修改 es 的 config/elasticsearch.yml 配置文件,添加如下内容,使之支持跨域:

#开启跨域访问
http.cors.enabled: true 
 #允许所有设备访问
http.cors.allow-origin: "*" 

配置完成后,重启 es,此时 head 上就有数据了。

3.3 Kibana安装

Kibana 是一个 Elastic 公司推出的一个针对 es 的分析以及数据可视化平台,可以搜索、查看存放在 es 中的数据。

  1. 下载地址:https://www.elastic.co/cn/downloads/kibana
  2. 解压到指定目录
  3. 配置 es 的地址信息(可选,如果 es 是默认地址以及端口,可以不用配置,具体的配置文件是 config/kibana.yml)
  4. bin目录下启动kibana.bat文件
  5. localhost:5601访问
  6. 正常情况界面是英文的,可以在配置文件中kibana.yml最后添加 i18n.locale: “zh-CN” 进行汉化
i18n.locale: "zh-CN"

在这里插入图片描述

4 es核心概念介绍

4.1 es十大核心概念

4.1.1 集群(cluster)

一个或者多个安装了 es 节点的服务器组织在一起,就是集群,这些节点共同持有数据,共同提供搜索服务。
一个集群有一个名字,这个名字是集群的唯一标识,该名字成为 cluster name,默认的集群名称是 elasticsearch,具有相同名称的节点才会组成一个集群。
可以在 config/elasticsearch.yml 文件中配置集群名称:
cluster.name: xxx

在集群中,节点的状态有三种:绿色、黄色、红色:

  • 绿色:节点运行状态为健康状态。所有的主分片、副本分片都可以正常工作。
  • 黄色:表示节点的运行状态为警告状态,所有的主分片目前都可以直接运行,但是至少有一个副本分片是不能正常工作的。
  • 红色:表示集群无法正常工作。

4.1.2 节点(Node)

集群中的一个服务器就是一个节点,节点中会存储数据,同时参与集群的索引以及搜索功能。一个节点想要加入一个集群,只需要配置一下集群名称即可。默认情况下,如果我们启动了多个节点,多个节点还能够互相发现彼此,那么它们会自动组成一个集群,这是 es 默认提供的,但是这种方式并不可靠,有可能会发生脑裂现象。所以在实际使用中,建议一定手动配置一下集群信息。

4.1.3 索引(Index)

具有相似特征文档的集合
可以理解成关系型数据库中的库

4.1.4 类型(Type)

类型是索引上的逻辑分类或者分区。在 es6 之前,一个索引中可以有多个类型,从 es7 开始,一个索引中,只能有一个类型。在 es6.x 中,依然保持了兼容,依然支持单 index 多个 type 结构,但是已经不建议这么使用。

类型可以理解成关系型数据库中的表

4.1.5 文档(Document)

一个可以被索引的数据单元。例如一个用户的文档、一个产品的文档等等。文档都是 JSON 格式的。

文档可以理解成关系型数据库中的行记录

4.1.6 分片(Shards)

索引都是存储在节点上的,但是受限于节点的空间大小以及数据处理能力,单个节点的处理效果可能不理想,此时我们可以对索引进行分片。当我们创建一个索引的时候,就需要指定分片的数量。每个分片本身也是一个功能完善并且独立的索引。
默认情况下,一个索引会自动创建 1 个分片,并且为每一个分片创建一个副本。

4.1.7 副本(Replicas)

副本也就是备份,是对主分片的一个备份。

4.1.8 Settings

集群中对索引的定义信息,例如索引的分片数、副本数等等。

4.1.9 Mapping

Mapping 保存了定义索引字段的存储类型、分词方式、是否存储等信息。

4.1.10 Analyzer

字段分词方式的定义。

4.1 ES Vs 关系型数据库

ES关系型数据库
索引数据库
类型
文档
字段
映射(Mapping)表结构
DSLSQL
GET http://select * from xxx
PUT http://update xxx set xx=xx
DELETE http://delete xxx
全文索引索引

5. ES分词器

5.1 内置分词器

ES核心功能就是数据检索.

查询主要分为两个步骤:

  1. 词条化:分词器将输入的文本转为一个一个的词条流。
  2. 过滤:比如停用词过滤器会从词条中去除不相干的词条(的,嗯,啊,呢);另外还有同义词过滤器、小写过滤器等。

ES中内置的分词器有:

分词器作用
Standard Analyzer标准分词器,适用于英语
Simple Analyzer简单分词器,基于非字母字符进行分词,单词会被转为小写字母
Whilespace Analyzer空格分词器,按照空格进行切分
Stop Analyzer类似于简单分词器,但是增加了停用词的功能
keyword Analyzer关键词分词器,输入文本等于输出文本(即不可切分)
Pattern Analyzer利用正则表达式对文本进行切分,支持停用词
Language Analyzer针对特定语言的分词器
Fingerprint Analyzer指纹分析仪分词器,通过创建标记进行重复检测

5.2 中文分词器

5.2.1 下载安装

比较常用的中文分词器是ik 分词器
ik分词器是一个插件,
下载地址:https://github.com/medcl/elasticsearch-analysis-ik

安装方式也是非常简单的,
把ik分词器插件解压到plugins目录下就可以了
最好在plugins下建一个ik目录
在这里插入图片描述
最终效果如图所示:
在这里插入图片描述
然后重启即可。

5.2.2 自定义扩展词库

在ik分词器config目录下新建xxx.dic,在改文件中可以配置自定义的词典
在这里插入图片描述
配置好词库之后,在IKAnalyzer.cfg.xml 文件中配置扩展词典的位置
在这里插入图片描述
重启ES。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值