【Elasticsearch】Rest风格API(一)

本文涉及的产品
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
简介: 【Elasticsearch】Rest风格API
  1. Rest风格API

Elasticsearch提供了Rest风格的API,即http请求接口

  1. 基本概念

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

索引(indices)

Databases 数据库

类型(type)

Table 数据表

文档(Document)

Row 行

字段(Field)

Columns 列

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

1.官网

Elasticsearch Guide [6.8] | Elastic

  1. 索引操作
  1. 创建索引:put请求
  1. 2.使用kibana创建索引
  1. 请求方式:PUT
  2. 请求路径:索引库名
  3. 请求参数:json格式
put book
{
  "settings":{
    "number_of_shards":1, /*分片数量*/
    "number_of_replicas":0 /*副本数量*/
  }
}

ab48af3b453f403bada3da64d1e3f0ca.png

  1. number_of_shards 是指索引要做多少个分片,只能在创建索引时指定,后期无法修改。
  2. number_of_replicas 是指每个分片有多少个副本,后期可以动态修改
  3. 什么是分片?

ES中所存数据的文件块,也是数据的最小单元块。假如有2个分片,插入10条数据,默认,每个分片存5条。

  1. 查看索引:get请求

get 索引库名


2b93256c438b48798bb675745b686da8.png

我们可以使用*来查询所有索引库

2c1bf4d801594a6bbc9bbfb0661d0fe2.png


  1. 删除索引:delete请求

delete 索引库名


21c10531848547b9a0cc6cf5fd819f44.png

  1. 映射配置

创建索引库,就相当于mysql创建“数据库”。接着我们来配置映射,相当于mysql创建“表结构”。

1.在ElasticSearch中,我们常配置:

  1. 字段的数据类型
  2. 是否要存储
  3. 是否要索引
  4. 是否分词
  5. 分词器是什么
  1. 创建映射关系

PUT /索引库名/_mapping/类型名称

{
  "properties": {
    "字段名": {
      "type": "类型",
      "index": true,
      "store": true,
      "analyzer": "分词器"
    }
  }
}

1.类型名称:基本概念中所说的type,类似于数据库中的表

1.字段名:类似于数据库中的列名。

  1. type:类型,可以是text、keyword、long、short、date、integer、object等
  2. index:是否索引,默认为true
  3. store:是否存储,默认为false
  4. analyzer:分词器,这里的`ik_max_word`即使用ik分词器

2.实例

/* 1.先创建索引 */
put czxy
/* 2.创建映射关系 */
put czxy/_mapping/book
{
  "properties": {
    "title": {
      "type": "text",
      "analyzer": "ik_max_word"
    },
    "images": {
      "type": "keyword",
      "index": "false"
    },
    "price": {
      "type": "float"
    }
  }
}

b39c90d2c00744bd9709d9c3b64441b3.png

  1. 查看映射关系

GET /索引库名/_mapping934c3372dac741aebe9d9cdec46b1452.png


  1. 字段属性详解

1type


1.Elasticsearch中支持的数据类型非常丰富

1.String类型,又分两种:

  1. text修饰字符串,默认进行分词,并生成索引。不能用来过滤、排序和聚合等操作。
  2. keyword修饰字符串,不会分词,不会建立索引。常常被用来过滤、排序和聚合。

2.Numerical:数值类型,分两类

  1. 基本数据类型:long、interger、short、byte、double、float、half_float
  2. 浮点数的高精度类型:scaled_float
  3. 需要指定一个精度因子,比如10或100。elasticsearch会把真实值乘以这个因子后存储,取出时再还原。

3.Date:日期类型

  1. elasticsearch可以对日期格式化为字符串存储,但是建议我们存储为毫秒值,存储为long,节省空间。


2)index


index影响字段的索引情况。


  1. true:字段会被索引,则可以用来进行搜索。默认值就是true
  2. false:字段不会被索引,不能用来搜索


index的默认值就是true,也就是说你不进行任何配置,所有字段都会被索引。


但是有些字段是我们不希望被索引的,比如商品的图片信息,就需要手动设置index为false。


3store


是否将数据进行额外存储。


Elasticsearch在创建文档索引时,会将文档中的原始数据备份,保存到一个叫做`_source`的属性中。而且我们可以通过过滤`_source`来选择哪些要显示,哪些不显示。


而如果设置store为true,就会在`_source`以外额外存储一份数据,多余,因此一般我们都会将store设置为false,事实上,**store的默认值就是false。**


  1. 数据操作
  1. 添加数据
  1. 语法:没有id
POST _index/_type/
{
  "属性": "值",
  ....
}
  1. 实例
POST czxy/book/
{
  "title": "标题",
  "price": 1234
}


c95757accdd4494fa536f0c88b72574f.png



相关实践学习
使用阿里云Elasticsearch体验信息检索加速
通过创建登录阿里云Elasticsearch集群,使用DataWorks将MySQL数据同步至Elasticsearch,体验多条件检索效果,简单展示数据同步和信息检索加速的过程和操作。
ElasticSearch 入门精讲
ElasticSearch是一个开源的、基于Lucene的、分布式、高扩展、高实时的搜索与数据分析引擎。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr(也是基于Lucene)。 ElasticSearch的实现原理主要分为以下几个步骤: 用户将数据提交到Elastic Search 数据库中 通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据 当用户搜索数据时候,再根据权重将结果排名、打分 将返回结果呈现给用户 Elasticsearch可以用于搜索各种文档。它提供可扩展的搜索,具有接近实时的搜索,并支持多租户。
相关文章
|
24天前
|
存储 人工智能 API
(Elasticsearch)使用阿里云 infererence API 及 semantic text 进行向量搜索
本文展示了如何使用阿里云 infererence API 及 semantic text 进行向量搜索。
|
3月前
|
存储 人工智能 自然语言处理
Elasticsearch Inference API增加对阿里云AI的支持
本文将介绍如何在 Elasticsearch 中设置和使用阿里云的文本生成、重排序、稀疏向量和稠密向量服务,提升搜索相关性。
119 14
Elasticsearch Inference API增加对阿里云AI的支持
|
2月前
|
监控 API 索引
Elasticsearch集群使用 _cluster/health API
Elasticsearch集群使用 _cluster/health API
69 2
|
2月前
|
Unix API 索引
Elasticsearch集群使用 _cat/health API
Elasticsearch集群使用 _cat/health API
40 1
|
3月前
|
JSON Java 网络架构
elasticsearch学习四:使用springboot整合 rest 进行搭建elasticsearch服务
这篇文章介绍了如何使用Spring Boot整合REST方式来搭建和操作Elasticsearch服务。
160 4
elasticsearch学习四:使用springboot整合 rest 进行搭建elasticsearch服务
|
2月前
|
缓存 API 网络架构
掌握现代API开发:GraphQL vs REST
【10月更文挑战第24天】本文深入探讨了现代API开发中两种主流技术——GraphQL和REST的设计理念、技术特点及实际开发中的对比分析。GraphQL通过声明式数据请求和强类型系统提供更高的灵活性和性能,而REST则以其无状态特性和成熟的生态系统见长。文章还讨论了两者在客户端-服务器交互、安全性和工具支持方面的优劣,帮助开发者根据项目需求做出明智选择。
|
3月前
|
Web App开发 JavaScript Java
elasticsearch学习五:springboot整合 rest 操作elasticsearch的 实际案例操作,编写搜索的前后端,爬取京东数据到elasticsearch中。
这篇文章是关于如何使用Spring Boot整合Elasticsearch,并通过REST客户端操作Elasticsearch,实现一个简单的搜索前后端,以及如何爬取京东数据到Elasticsearch的案例教程。
263 0
elasticsearch学习五:springboot整合 rest 操作elasticsearch的 实际案例操作,编写搜索的前后端,爬取京东数据到elasticsearch中。
|
3月前
|
Java API Maven
使用 Smart-doc 记录 Spring REST API
使用 Smart-doc 记录 Spring REST API
73 0
|
2月前
|
存储 安全 数据管理
如何在 Rocky Linux 8 上安装和配置 Elasticsearch
本文详细介绍了在 Rocky Linux 8 上安装和配置 Elasticsearch 的步骤,包括添加仓库、安装 Elasticsearch、配置文件修改、设置内存和文件描述符、启动和验证 Elasticsearch,以及常见问题的解决方法。通过这些步骤,你可以快速搭建起这个强大的分布式搜索和分析引擎。
69 5
|
3月前
|
存储 JSON Java
elasticsearch学习一:了解 ES,版本之间的对应。安装elasticsearch,kibana,head插件、elasticsearch-ik分词器。
这篇文章是关于Elasticsearch的学习指南,包括了解Elasticsearch、版本对应、安装运行Elasticsearch和Kibana、安装head插件和elasticsearch-ik分词器的步骤。
292 0
elasticsearch学习一:了解 ES,版本之间的对应。安装elasticsearch,kibana,head插件、elasticsearch-ik分词器。
下一篇
开通oss服务