【Elasticsearch】es基础入门-01.了解ES

一.了解ES

Elasticsearch是一款非常强大的开源搜索引擎,可以帮助我们从海量数据中快速找到需要的内容

**Elasticsearch**结合kibana、Logstash、Beats,也就是elasticstack(ELK)。被广泛应用在日志数据分析、实时监控等领域

在这里插入图片描述

Lucene是一个Java语言的搜索引擎类库

官网地址:https://lucene.apache.org/

优势缺点
易扩展只限于Java语言开发
高性能(基于倒排索引)学习曲线陡峭
不支持水平扩展

Elasticsearch官网

Elasticsearch具备一下优势:1.支持分布式,可水平扩展;2.提供Restful接口,可被任何语言调用

二.正向索引与倒排索引

  • 传统的MySQl数据库采用正向索引:基于文档id创建索引。查询词条时必须先找到文档,而后判断是否包含词条

  • elasticsearch采用倒排索引:对文档内容分词,对词条创建索引,并记录词条所在文档的信息。查询时先根据词条查询到文档id,而后获取到文档

    • 文档:每条数据都是一个文档

    • 词条:文档按语义分成的词语

      在这里插入图片描述

三.基本概念

文档

在这里插入图片描述

索引:相同类型的文档集合

映射:索引中文档的字段约束信息,类似表的结构约束

在这里插入图片描述

对比

MySQLElastiGsearch说明
TableIndex索引(index),就是文档的集合,类似数据库的表(table)
ROWDocument文档(Document),就是一条条的数据,类似数据库中的行(Row),文档都是JSON格式
CoLumnField字段(Field),就是JSON文档中的字段,类似数据库中的列(Column)
SchemaMappingMapping(映射)是索引中文档的约束,例如字段类型约束。类似数据库的表结构(Schema)
SQLDSLDSL是elasticsearch提供的JSON风格的请求语句,用来操作elasticsearch,实现CRUD

架构

  1. Mysql:擅长事务类型操作,可以确保数据的安全和一致性
  2. Elasticsearch:擅长海量数据的搜索、分析、计算

在这里插入图片描述

索引库

一.mapper属性

mapping是对索引库中文档的约束,常见的mapping属性包括:

  • type:字段数据类型,常见的简单类型有:

    • 字符串:text(可分词的文本)、keyword(精确值,例如:品牌、国家、ip地址)
    • 数值:long、integer、short、byte、double、float、
    • 布尔:boolean
    • 日期:date
    • 对象:object
  • index:是否创建索引,默认为true

  • analyzer:使用那种分词器

  • properties:该字段的子字段

二.创建索引库

ES中通过Restful请求操作索引库、文档。请求内容用DSL语句来表示。创建索引库和mapping的DSL语法如下:

在这里插入图片描述

示例:

在这里插入图片描述

三.修改索引库

原则上索引库一旦创建就无法修改,但是可以添加新的字段,语法如下:

PUT /索引库名/_mapping
{
	"properties":{
		"新字段名":{
			"type":"integer"
		}
	}
}

#查询索引库
GET /索引库名

示例:

在这里插入图片描述

四.删除索引库

DELETE /索引库名

文档操作

一.添加文档(DSL语法)

POST /索引库名/_doc/文档id
{
	"字段1":"值1",
	"字段2":"值2",
	"字段3":{
		"子属性":"值3"
	},
	// .....略
}

二.查看、删除文档

#查询文档
GET /索引库/_doc/文档id

#删除文档
DELETE /索引库/_doc/文档id

三.修改文档

(一)方式一:全量修改,会删除旧文档,添加新文档

PUT /索引库/_doc/文档id
{
	"字段1":"值1",
	"字段2":"值2",
	// .....略
}

(二)方式二:增量修改,修改指定字段值

POST //索引库/_doc/文档id
{
	"doc":{
		"字段1":"新值1",
		"字段2":"新值2",
        // .....略
    }
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值