【Elasticsearch】Rest风格API(一)

本文涉及的产品
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
云数据库 RDS MySQL Serverless,价值2615元额度,1个月
简介: 【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可以用于搜索各种文档。它提供可扩展的搜索,具有接近实时的搜索,并支持多租户。
相关文章
|
15天前
|
开发框架 监控 .NET
Visual Basic的Web服务和REST API开发指南
【4月更文挑战第27天】本文探讨了使用Visual Basic(VB.NET)构建Web服务和RESTful API的方法。首先介绍了Web服务的基础和REST API的概念,然后阐述了.NET Framework与.NET Core/.NET 5+对VB.NET的支持,以及ASP.NET Core在Web开发中的作用。接着,详细讲解了创建RESTful API的步骤,包括控制器与路由设置、模型绑定与验证,以及返回响应。此外,还讨论了安全措施、测试方法、部署选项和监控策略。最后强调,VB.NET开发者可以通过ASP.NET Core涉足现代Web服务开发,拓宽技术领域。
|
4天前
|
存储 自然语言处理 搜索推荐
Elasticsearch 8.10 同义词管理新篇章:引入同义词 API
Elasticsearch 8.10 同义词管理新篇章:引入同义词 API
12 0
|
5天前
|
存储 数据可视化 数据建模
阿里云大佬叮嘱我务必要科普这个 Elasticsearch API
阿里云大佬叮嘱我务必要科普这个 Elasticsearch API
13 0
|
12天前
|
分布式计算 DataWorks 关系型数据库
DataWorks操作报错合集之在DataWorks同步数据时,遇到乱码问题,该怎么解决(rest api数据源)
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
22 0
|
13天前
|
JSON 安全 API
【专栏】四种REST API身份验证方法:基本认证、OAuth、JSON Web Token(JWT)和API密钥
【4月更文挑战第28天】本文探讨了四种REST API身份验证方法:基本认证、OAuth、JSON Web Token(JWT)和API密钥。基本认证简单但不安全;OAuth适用于授权第三方应用;JWT提供安全的身份验证信息传递;API密钥适合内部使用。选择方法时需平衡安全性、用户体验和开发复杂性。
|
19天前
|
JSON JavaScript API
访问REST API:在Vue中消费和管理远程数据
【4月更文挑战第23天】本文探讨了在Vue应用中高效访问REST API的方法,包括选择合适的API、使用Axios或Fetch发送请求、封装API服务、处理响应和数据、错误管理及性能优化。关键点在于创建服务层封装请求,使用计算属性和方法处理数据,以及实施错误处理和性能提升策略。通过这些最佳实践,开发者能更好地管理和消费远程数据,构建出动态、响应式的Vue应用。
|
22天前
|
安全 Java API
第7章 Spring Security 的 REST API 与微服务安全(2024 最新版)(下)
第7章 Spring Security 的 REST API 与微服务安全(2024 最新版)
25 0
|
1天前
|
安全 API 开发者
智能体-Agent能力升级!新增Assistant API & Tools API服务接口
ModelScope-Agent是一个交互式创作空间,它支持LLM(Language Model)的扩展能力,例如工具调用(function calling)和知识检索(knowledge retrieval)。它已经对相关接口进行了开源,以提供更原子化的应用LLM能力。用户可以通过Modelscope-Agent上的不同代理(agent),结合自定义的LLM配置和消息,调用这些能力。
|
5天前
|
JSON 搜索推荐 数据挖掘
电商数据分析的利器:电商关键词搜索API接口(标题丨图片丨价格丨链接)
淘宝关键词搜索接口为电商领域的数据分析提供了丰富的数据源。通过有效利用这一接口,企业和研究人员可以更深入地洞察市场动态,优化营销策略,并提升用户体验。随着电商平台技术的不断进步,未来的API将更加智能和个性化,为电商行业带来更多的可能性。