ElasticSearch快速入门

  • Post author:
  • Post category:其他




快速开始



安装配置:

1、新版本要求至少jdk1.8以上。

2、支持tar、zip、rpm等多种安装方式。

在windows下开发建议使用ZIP安装方式。

3、支持docker方式安装

详细参见:https://www.elastic.co/guide/en/elasticsearch/reference/current/install-elasticsearch.html

下载ES: Elasticsearch 6.2.1

https://www.elastic.co/downloads/past-releases

解压 elasticsearch-6.2.1.zip

image-20210325144317532

bin:脚本目录,包括:启动、停止等可执行脚本

config:配置文件目录

data:索引目录,存放索引文件的地方

logs:日志目录

modules:模块目录,包括了es的功能模块

plugins :插件目录,es支持插件机制

配置文件

cluster.name: xuecheng      #集群名称
node.name: xc_node_1        #节点名称
network.host: 0.0.0.0       #可以绑定任何ip 访问外网
http.port: 9200             #暴露的http端口
transport.tcp.port: 9300    #http内部的交互接口
node.master: true           #主节点
node.data: true             #数据节点
discovery.zen.ping.unicast.hosts: ["0.0.0.0:9300", "0.0.0.0:9301"]  #俩个集群节点 ip与端口
discovery.zen.minimum_master_nodes: 1    #最大主节点个数
node.ingest: true                       #
bootstrap.memory_lock: false            #内存的锁定  如果锁定这块空间只给es使用
node.max_local_storage_nodes: 2         #最大的存储节点

path.data: D:\Java\elasticsearch-6.2.1\data  #索引目录
path.logs: D:\Java\elasticsearch-6.2.1\logs   #日志目录

http.cors.enabled: true                     #跨域设置
http.cors.allow-origin: /.*/                



运行

运行elasticsearch.bat

安装解压可视化插件head

image-20210325145820419

运行命令npm run start 在浏览器打开

image-20210325150931094

索引(名词):ES是基于Lucene构建的一个搜索服务,它要从索引库搜索符合条件索引数据。

索引(动词):索引库刚创建起来是空的,将数据添加到索引库的过程称为索引。

打开postman

image-20210325150754377



创建索引库

put http://localhost:9200/索引库名称 只能用put创建索引

{
	"settings": { //设置索引
		"index": { //索引
			"number_of_shards": 1,  //分片有几个
			"number_of_replicas": 0 //副本有几个
		}
	}
}

image-20210325151224248

创建了一片索引也可以在浏览器上面直接创建索引

索引库相当于关系型数据库的表



然后创建映射

image-20210325152137842

post或者put写入映射 get查看

改文档会把这个文档删了再添加一个

坑:postman执行查询时候 body里面不要包含数据 不然会查询失败



分词

image-20210325163658485

默认分词查询 默认单字分词

ik分词器解压放在elasticsearch/plugins里面 命名ik好区分 应为以后要放很多插件

在原本内容后加上分词器关键词 “analyzer”:“ik_max_word”

  • ik_max_word 细颗粒 一般存储使用
  • ik_smart 粗颗粒 一般查询使用
  • 自定义词汇 在ik目录下打开配置文件命名一个扩展字典 然后在配置文件同级创建一个文件 然后加入词汇 一定要是utf-8格式 然后重启es


映射

post映射 提交 没有就是添加有了就是更新

es类型添加了 后期就不可以修改了 想修改只能删除映射库 重新创建



常用映射类型

“text ik_max_wide:?

想全文搜索必须设置分词器 索引用细的 索引使用ik_maxword

analyzer 搜索使用ik_nax_word




ElasticSearch



ElasticSearch由来



Hadoop又叫HDF


Lucene是一套信息检索工具包


Lucene与ElasticSearch关系

ElasticSearch是基于Lucene做了一些封装和增强



ElasticSearch概述

es满足一个三高的分布式全文检索引擎;可以扩展到上百台服务器,目的通过简单的restfulapi来隐藏lucene的复杂性 2016年成为了排名第一的搜索引擎类应用



谁在使用

维基百科

github

电商网站 检索商品

站内搜索(电商,照片,门户等等)



ELK三剑客

ElasticSearch搜索 logstash过滤 kibana可视化分析



ES和solr的差别



ElasticSearch简洁

全文搜索 结构化搜索 分析



solr简洁

也是基于lucene 但是他对外是webservice api接口 相比之下 es是更主流



lucene简洁

lucene只是一个免费的信息检索库



如何选择

单纯对已有数据搜索 solr更快

当实时建立索引 solr会产生io阻塞 查询性能较差 索引es更快

随着数据量增加,solr搜索变得更低 es没啥变化



es与solr总结

es开箱即用 solr略微复杂

solr支持更多格式 es只支持json

solr官方提供功能更多 es更注重核心功能 高级功能第三方插件提供

solr利用zkp分布式管理 es利用自己的分布式协调

solr查询快 更新索引时慢 (插删慢)



ElasticSearch安装

官网安装 config下的配置文件修改

bin:启动文件
config:配置文件
log4j2.properties:日志配置文件
jvm.options:java虚拟机的配置
elasticsearch.yml:es的配置文件
data:索引数据目录
lib:相关类库Jar包
logs:日志目录
modules:功能模块
plugins:插件

image-20210602232230150



安装ES的图形化界面插件客户端

注意:需要NodeJS的环境,我们讲解大前端进阶已经安装过了,没安装的需要安装!

Head是elasticsearch的集群管理工具,可以用于数据的浏览查询!被托管在github上面!

地址: https://github.com/mobz/elasticsearch-head/

1、下载 elasticsearch-head-master.zip

2、解压之后安装依赖!

cnpm install
npm run start

启动插件(可视化页面)

在插件目录 进入cmd 输入

npm run start


解决跨域问题

先停止es 修改配置文件 修改完保存后 重启再次连接

es配置文件config下的elasticsearch.yml 在最下方配置

cluster.name: xuecheng      #集群名称
node.name: xc_node_1        #节点名称
network.host: 0.0.0.0       #可以绑定任何ip 访问外网
http.port: 9200             #暴露的http端口
transport.tcp.port: 9300    #http内部的交互接口
node.master: true           #主节点
node.data: true             #数据节点
discovery.zen.ping.unicast.hosts: ["0.0.0.0:9300", "0.0.0.0:9301"]  #俩个集群节点 ip与端口
discovery.zen.minimum_master_nodes: 1    #最大主节点个数
node.ingest: true                       #
bootstrap.memory_lock: false            #内存的锁定  如果锁定这块空间只给es使用
node.max_local_storage_nodes: 2         #最大的存储节点

path.data: D:\Java\elasticsearch-6.2.1\data  #索引目录
path.logs: D:\Java\elasticsearch-6.2.1\logs   #日志目录

http.cors.enabled: true                     #跨域设置
http.cors.allow-origin: /.*/     

这个信息指的就是9200的信息

image-20210602233553549

初学,把es当做一个数据库!(可以简历索引(库),文档(库中的数据))



版权声明:本文为cured_fish原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。