Elasticsearch介绍和安装

版权声明:https://blog.csdn.net/weixin_43814195?t=1 https://blog.csdn.net/weixin_43814195/article/details/85275156

1.简介

在这里插入图片描述

1.1基本概念

Elasticsearch是基于Lucene的全文检索库,本质也是存储数据,很多概念与MySQL类似的。

对比关系:

索引库(indices)--------------------------------Databases 数据库

类型(type)-----------------------------Table 数据表

     文档(Document)----------------Row 行

	   字段(Field)-------------------Column 列 

详细说明:

概念 说明
索引库(indices) indices是index的复数,代表许多的索引,
类型(type) 型是模拟mysql中的table概念,一个索引库下可以有不同类型的索引,比如商品索引,订单索引,其数据格式不同。不过这会导致索引库混乱,因此未来版本中会移除这个概念
文档(document) 存入索引库原始的数据。比如每一条商品信息,就是一个文档
字段(field) 文档中的属性
映射配置(mappings) 字段的数据类型、属性、是否索引、是否存储等特性

是不是与Lucene中的概念类似。

另外,在Elasticsearch有一些集群相关的概念:

  • 索引集(Indices,index的复数):逻辑上的完整索引
  • 分片(shard):数据拆分后的各个部分
  • 副本(replica):每个分片的复制

要注意的是:Elasticsearch本身就是分布式的,因此即便你只有一个节点,Elasticsearch默认也会对你的数据进行分片和副本操作,当你向集群添加新数据时,数据也会在新加入的节点中进行平衡(负载均衡)。

1.2.Elastic

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

1.1.Elastic

Elastic有一条完整的产品线:Elasticsearch、Kibana、Logstash等,前面说的三个就是大家常说的ELK技术栈。

1.3 Elasticsearch

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

在这里插入图片描述

如上所述,Elasticsearch具备以下特点:

  • 分布式,无需人工搭建集群(solr就需要人为配置,使用Zookeeper作为注册中心)
  • Restful风格,一切API都遵循Rest原则,容易上手
  • 近实时搜索,数据更新在Elasticsearch中几乎是完全同步的。

1.4 版本

目前Elasticsearch最新的版本是6.4.1,我们使用这个版本6.2.4

需要JDK1.8及以上

1.2.安装和配置

1.2.1 下载

在这里插入图片描述

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

在这里插入图片描述

在这里插入图片描述

1.2.2 安装

elasticsearch无需安装,解压即用。

在这里插入图片描述

代码访问:9300

代码访问:9300

1.3.运行

进入elasticsearch/bin目录,可以看到下面的执行文件:

在这里插入图片描述

双击运行

在这里插入图片描述

可以看到绑定了两个端口:

  • 9300:java程序访问的端口
  • 9200:浏览器、postman访问接口

我们在浏览器中访问:http://127.0.0.1:9200

在这里插入图片描述

1.4.安装Head插件

1.4.1.什么是Head

ealsticsearch只是后端提供各种api,那么怎么直观的使用它呢?elasticsearch-head将是一款专门针对于elasticsearch的客户端工具,类似mysql的sqlyog或者navicat

elasticsearch-head配置包,下载地址:https://github.com/mobz/elasticsearch-head

1.4.2.安装

  • es5以上版本安装head需要安装node和grunt

第一步:从地址:https://nodejs.org/en/download/ 下载相应系统的msi,双击安装。

在这里插入图片描述

第二步:安装完成用cmd进入安装目录执行 node -v可查看版本号

在这里插入图片描述

第三步:执行 npm install -g grunt-cli 安装grunt ,安装完成后执行grunt -version查看是否安装成功,会显示安装的版本号

在这里插入图片描述

第四步:进入E:\environment2\elasticsearch-head-master文件夹,执行npm install命令

在这里插入图片描述

第五步:运行head插件,下面命令二选一

  • 命令一:npm run start
  • 命令二:grunt server

在这里插入图片描述

第六步:

在这里插入图片描述

1.4.3.配置运行

第一步:进入es安装目录下的config目录,修改elasticsearch.yml文件.在文件的末尾加入以下代码

http.cors.enabled: true 
http.cors.allow-origin: "*"
node.master: true
node.data: true

然后去掉network.host: 192.168.0.1的注释并改为network.host: 0.0.0.0,去掉cluster.namenode.name;http.port的注释(也就是去掉#)

第二步:双击elasticsearch.bat重启es

(下面步骤直接忽略)

第三步:在https://github.com/mobz/elasticsearch-head中下载head插件,选择下载zip

第四步:解压到指定文件夹下,D:\environment\elasticsearch-head-master 进入该文件夹,修改D:\environment\elasticsearch-head-master\Gruntfile.js 在对应的位置加上hostname:’*’、

在这里插入图片描述

第五步:在D:\environment\elasticsearch-head-master 下执行npm install 安装完成后执行grunt server 或者npm run start 运行head插件,如果不成功重新安装grunt。成功如下

1.4.4.成功

在这里插入图片描述

1.5.安装ik分词器

ElasticSearch 默认采用分词器, 单个字分词 ,效果很差

搜索【IK Analyzer 3.0】

http://www.oschina.net/news/2660

在这里插入图片描述

在这里插入图片描述

Lucene的IK分词器早在2012年已经没有维护了,现在我们要使用的是在其基础上维护升级的版本,并且开发为Elasticsearch的集成插件了,与Elasticsearch一起维护升级,版本也保持一致,最新版本:6.2.4

1.5.1.下载

源码下载地址:https://github.com/medcl/elasticsearch-analysis-ik/tree/6.2.x

jar包下载地址:https://github.com/medcl/elasticsearch-analysis-ik/releases

每个es版本对应的ik分词器jar包下载位置:https://github.com/medcl/elasticsearch-analysis-ik/releases

使用ik分词器的时候,一定要下载对应es版本的jar包

在这里插入图片描述

1.5.2.安装

无需安装,解压即可使用

我们将其改名为ik,并复制到elasticsearch的解压目录,如下图所示

在这里插入图片描述

然后重启elasticsearch:

在这里插入图片描述

1.5.3.扩展词和停用词

扩展词和停用词文件:
在这里插入图片描述

在这里插入图片描述

1.5.4 测试

在这里插入图片描述

好啦!以上就是小编的内容啦,如果错误!欢迎在下方评论哦!!!

没有更多推荐了,返回首页