ElacsticSearch从安装到命令

ElasticSearch(库、表、索引)

Elasticsearch 是位于 Elastic Stack 核心的分布式搜索和分析引擎 。

优点:适用于大数据搜索。

原始:SQL(like%李辉%),缺点:如果数据庞大就十分缓慢!采用索引的方式。

安装:

安装之前必须保证java环境配置正确且具有vue的环境,如:nodejs.

官网下载及其缓慢(可能需要翻墙下载)官网地址:(略)

这里直接提供:

**链接:https://pan.baidu.com/s/1Iq72c0h-85BKLPnxywGlbQ?pwd=8888 **
提取码:8888

注意:elasticsearch-head-master直接到github上面下载;

安装方式简单(解压即安装)
在这里插入图片描述

ELK:(Elasticsearch、Logstash、Kibana ):三剑客!!!

通过简单的RESTful API 来隐藏Lunene的复杂性,从而让全文搜索变得简单!!!

运行elasticserch:

目录结构:
在这里插入图片描述

  • bin:启动文件

  • config:配置文件

    • log4j2 日志配置文件
    • jvm.options java虚拟机相关配置
    • elasticsearch.yml elasticsearch的配置文件! 默认端口9022 跨域
  • lib:相关jar包

  • modules:功能模块

  • plugins:插件! ik(分词器)
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

在这里插入图片描述
运行kibana:
在这里插入图片描述
在这里插入图片描述
运行head-master:

运用命令启动: **npm install ** npm run start
在这里插入图片描述
在这里插入图片描述
注意:如果访问报错,需要配置跨域。具体方法网上有这里不在记录!!!
在这里插入图片描述
Elasticsearch和Solr差别:

Elasticsearch:全文搜索、结构化搜索、分析!!! 有索引时就快,只支持json

Solr:用post方法向Solr服务器发送一个描述、Field及其内容的xml文档。进行增删改查。存在数据时就快.

Lucene: Lucene是一套用于全文检索和搜寻的开源程式库,由Apache软件基金会支持和提供。Lucene提供了一个简单却强大的应用程式接口,能够做全文索引和搜寻。

ES的核心概念

DB ES

数据库(database) 索引(indices)

表(tables) types

行(rows) documents

字段(columns) fields
在这里插入图片描述

文档:就是一条条的数据

user
	zhangsan 18
	lihui    6

类型:可以不用设置、它会自动识别,也可以指定数据类型

索引:相当于数据库

倒排索引:重要

  • 索引:
  • 字段类型(mapping):
  • 文档(documents):
IK分词器

如果要使用中文使用IK分词器:

安装:

官网下载:
在这里插入图片描述
在这里插入图片描述

分词器种类:

ik_smart

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YpoCgkYe-1661745685484)(C:\Users\Administrator\Desktop\1661689310170.png)]

ik_max_word
在这里插入图片描述
有些自己需要的词,需要自己加到我们的分词器字典中!

ik分词器增加自己的配置:
在这里插入图片描述
在这里插入图片描述

如果我们需要一些自己的词,自己在自己的dic文档中添加自己的词语就可以了

ES的基本语法(重要)

关于索引的基本操作

Rest风格

method url地址 描述

PUT XXXXXXX 创建文档(指定文档id)

POST XXXXXXX 创建文档(随机文档id)

POST XXXXXXX 修改文档

DELETE XXXXXXX 删除文档

GET XXXXXXX 查询文档通过文档id

POST XXXXXXX 查询所有数据

基本测试:

1、创建索引:

PUT /索引名/~类型名~/文档id
{
    请求体
}    

在这里插入图片描述
在这里插入图片描述

完成自动增加索引:(数据成功添加,相当于一个数据库)
在这里插入图片描述
上述已经说过:字段可以不添加类型、它能够自动识别!但是都有哪些类型呢?

  • 字符串类型
    • text keyword
  • 数值类型
    • long integer short byte double harf float scaled float
  • 日期类型
    • date
  • 布尔值类型
    • boolean
  • 二进制类型
    • binary
如何指定字段类型?

创建规则:
在这里插入图片描述
通过get请求查看信息:
在这里插入图片描述
查看默认信息:(不指定es会默认配置字段类型)
在这里插入图片描述
在这里插入图片描述
**扩展:**获取健康值代码
在这里插入图片描述
更新方法:

可以通过PUT命令和POST命令修改:
但是PUT命令修改有弊端:它的修改会进行覆盖,如果少字段就不存在

删除方法

通过DELETE命令来删除。根据你的请求来判断是删除索引还是删除文档。

关于文档的基本操作(重点)

基本操作:

- 添加数据:

在这里插入图片描述
- 查看数据
在这里插入图片描述

  • 更新数据
  • GET
    在这里插入图片描述
  • POST
    在这里插入图片描述
    复杂操作:(针对搜索的)

简单的搜索

GET lihui/user/1

在这里插入图片描述
复杂搜索select(排序、分页、高亮、模糊查询、精准查询)
在这里插入图片描述
只想查询其中的部分字段:
在这里插入图片描述
排序:sort

asc desc

分页查询

form:0 从第几条数据开始

size:10 返回多少条数据

/search/{current}/{pagesize}

boolean查询:
must命令:所有条件都要符合and
should命令:对应数据库的or
must_not命令:对应not
"bool":{

​	"must":{

​		"match":{

​			"name":"lihui"

​			},
		"match":{

​			"age":12

​			}
		//过滤 gt、gte、lt、lte
		"filter":{
			"range":{
				"age":{
					"lt":10
				}
			}
		}
		//两个条件查权重  多个条件使用空格隔开 只有满足其中一个结果就可以查出。
		"tags":"男 技术";
​	}

}
多条件查询

精确查询

通过倒排索引查询:

term标签(效率要高一点)

关于分词:

term:直接查询精确的

match:会使用分词器解析!(先分析文档,然后在通过分析文档进行解析)

注意:keyword修饰的词不会被分词器解析

多个值匹配精确查询

高亮查询

命令:highlight(高亮)

"highlight":{
	"fields":{
		"name":{}
	}
}
默认:<em></em>标签
自己设置:"pre_tags":"<p class="key" style:"color:red">"
"post_tags":"</p>"
  • 匹配
  • 按照条件匹配
  • 精确匹配
  • 区间范围匹配
  • 匹配字段过滤
  • 多条件查询
  • 高亮查询

这些mysql也可以完成、只是mysql效率比较低。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

m0_51110014

你的三连是我更新的动力。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值