Elasticsearch学习笔记(一)创建索引,添加文档

ElasticSearch学习笔记

Elasticsearch学习笔记(一)

Elasticsearch是一个分布式的、RESTful风格的搜索和数据分析引擎。

安装Elasticsearch

安装Elasticsearch,这里选择在Windows电脑中安装。[Elasticsearch官网Windows下载地址](Past Releases of Elastic Stack Software | Elastic)

下载完之后打开解压文件,进入文件夹

image-20211108104525457

进入到bin目录打开elasticsearch.bat文件,就可以启动Elasticsearch。

image-20211108104549453

启动之后可以通过localhost:9200访问,查看测试结果

image-20211108105550418

Restful风格

REST指的是一组架构约束条件和原则。满足这些约束条件和原则的应用程序或设计就是RESTful。REST表象化状态转变(表述性状态转变),基于HTTP、URI、XML、JSON等标准和协议,支持轻量级、跨平台、跨语言的架构设计。是Web服务的一种新的架构风格(一种思想)。在REST样式的Web服务中,每个资源都有一个地址。资源本身都是方法调用的目标,方法列表对所有资源都是一样的。

RESTful架构的主要原则
  • 对网络上所欲的资源都有一个资源标识符
  • 对资源的操作不会改变标识符。
  • 同一资源有多种表现形式(xml、json)
  • 所有操作都是无状态的(Stateless)

符合上述REST原则的架构方式称为RESTful

安装Postman

为了方便进行客户端的访问,使用Postman软件。

Postman是一款强大的页面调试工具,提供功能强大的WebAPI和HTTP请求调试。软件功能强大,界面简洁清晰,操作方便快捷。

Postman官网

Elasticsearch数据格式

Elasticsearch是面向文档型数据库,一条数据就是一个文档。下面是Elasticsearch存储文档数据和MySQL存储数据的一个比较。

image-20211108134501296

ES中的Index可以看成一个库,Types相当于表,Documents相当于表的行。在Elasticsearch 7.x中,Type的概念已经被删除了,就是一个索引下面只能有一种类型。

ES中的_doc是什么意思

_ doc就代表映射类型,Elasticsearch 7.x中一个索引中只能有一个type,因此_ doc就代表该类型,所以你会发现在想索引中添加文档时使用_ doc添加后,再在该索引下添加文档使用food,查询时,类型全为food。

索引操作

1)创建索引

在Elasticsearch中创建索引就等同于创建数据库

向ES服务器发出PUT方式的请求:localhost:9200/shopping,就是创建索引。

image-20211108162942308

如果重复添加索引会返回错误信息。

2)查看所有的索引

向ES服务器发送GET请求:localhost:9200/_cat/indices?v

_cat 表示查看的意思,indices表示索引

image-20211108163105248

  • health:表示当前服务器状态:green(集群完整)yellow(单点正常、集群不完整)red(单点不正常)
  • status:索引打开关闭状态
  • index:索引名
  • uuid:索引统一编号
  • pri:主分片数量
  • rep:副本数量
  • docs.count:可用文档数量
  • docs.deleted:文档删除状态(逻辑删除)
  • store.size:主分片和副分片整体占空间大小
  • pri.store.size:主分片占空间大小
3)查看单个索引

向ES服务器发送GET请求:localhost:9200/shopping

image-20211108163718526

4)删除索引

向ES服务器发送DELETE请求:localhost:9200/shopping

image-20211108163941756

删除之后再查看会返回索引不存在的信息

image-20211108164120065

文档操作

1)创建文档

索引已经创建好了接下来就可以创建文档,并添加数据了。文档就相当于关系型数据库中的表数据,添加的数据格式为JSON格式。

向ES服务器发送POST请求:localhost:9200:/shopping/_doc,同时需要加上请求体:

{"title": "面包",
"price": 10
}

发送请求的方式必须为POST,不能是PUT,否则会返回错误信息

image-20211108164625495

在创建数据时,没有指定数据唯一性标识(ID),索引,默认的ES服务器会随机生成一个。

也可以自定义唯一性标识,即在创建时指定

localhost:9200/shopping/_doc/1001

image-20211108165233583

2)查看文档

查看文档时,需要指明文档的唯一性标识

向ES服务器发送GET请求:localhost:9200/shopping/food/1

image-20211108170643641

查看索引所有数据

向ES服务器发送GET请求:localhost:9200/shopping_search

image-20211108175043825

3)修改文档

和新增文档一样,需要修改时,在请求体中修改字段同时请求方式可以为PUT和POST请求。

向ES服务器发送PUT,POST请求:localhost:9200/shopping/food/1001

同时在请求体中修改字段:

{
    "title": "西游记",
    "price": 23
}

image-20211108171912997

其中version为版本号。

4)修改字段

向ES服务器发送POST请求:localhost:9200/shopping/_update/1001

同时请求体内容为:

{
    "doc":{
        "title":"甜甜圈11"
    }
}

image-20211108174111477

5)删除文档

向ES服务器发送DELETE请求:localhost:9200/shopping/_doc/1002

删除文档不会立即从磁盘中删除,只是先将该文档标记为删除。

image-20211108174425560

6)条件删除文档

还可以根据条件对多条文档数据进行删除

向ES服务器发送PSOT请求:localhost:9200/shopping/_delete_by_query

image-20211108175532415

其中相应数据中的took字段代表耗时。

还可以通过请求体条件进行查询

{
    "query":{
        "match":{
            "title":"西游记"
        }
    }
}

image-20211109093443175

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要合理创建 Elasticsearch(ES)索引,需要考虑以下几个方面: 1. 确定索引的名称:ES中的索引名称应该简洁明了,能够清楚地表达索引的用途或内容。 2. 确定索引的字段:确定需要存储的字段以及字段的类型。在创建索引时,需要指定每个字段的映射类型,包括文本、数字、日期等等。 3. 确定分片和副本:根据数据量和查询负载来确定分片和副本的数量,以实现最佳性能和可用性。 4. 配置索引分析器:ES中的分析器用于将文本字段拆分成单词,并将这些单词标准化以便于搜索。可以根据需要配置合适的分析器。 5. 配置索引设置:根据需要配置索引的相关设置,包括存储大小、写入限制、刷新间隔等等。 6. 优化索引性能:可以通过调整索引缓存、启用压缩、设置合理的索引刷新间隔等方式来优化索引性能。 创建索引的基本语法如下: ``` PUT /索引名称 { "settings": { "number_of_shards": 分片数量, "number_of_replicas": 副本数量 }, "mappings": { "properties": { "字段名称": { "type": "字段类型" } } } } ``` 例如,创建一个名为“my_index”的索引,包含“title”和“content”两个字段,其中“title”为文本类型,而“content”为长文本类型,可以使用以下命令: ``` PUT /my_index { "settings": { "number_of_shards": 5, "number_of_replicas": 1 }, "mappings": { "properties": { "title": { "type": "text" }, "content": { "type": "text", "analyzer": "english" } } } } ``` 以上是创建索引的基本步骤和语法,根据实际需求,可以进一步配置索引的设置和优化性能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值