【Elasticsearch】Rest风格API(二)

本文涉及的产品
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
简介: 【Elasticsearch】Rest风格API
  1. 添加或更新数据
  1. 语法:数据存在更新;如果不存在添加(指定id)
PUT _index/_type/_id
{
  "属性": "值",
  ....
}

实例

PUT czxy/book/b001
{
  "title": "标题123",
  "price": 1234
}

d2e881c836d04fcdbcc131efc1c10fe3.png


删除数据

语法:

DELETE _index/_type/_id


实例

DELETE czxy/book/b001


查询操作

简单查询

指定id查询

GET czxy/book/b001


指定id查询,检索指定内容

GET czxy/book/b001?_source=title,price


高级查询

准备数据

PUT czxy2
PUT czxy2/_mapping/user
{
  "properties": {
    "username": {
      "type": "text",
      "analyzer": "ik_max_word"
    },
    "city": {
      "type": "keyword"
    },
    "age": {
      "type": "float"
    }
  }
}
PUT czxy2/user/u001
{
  "username": "张三",
  "city": "山西",
  "age": 18
}
PUT czxy2/user/u002
{
  "username": "张四",
  "city": "山东",
  "age": 20
}
PUT czxy2/user/u003
{
  "username": "张三三",
  "city": "山东",
  "age": 22
}

查询所有

match_all:检索所有的数据


GET _search
{
  "query": {
    "match_all": {}
  }
}

查询指定索引的所有

GET czxy2/_search
{
  "query": {
    "match_all": {}
  }
}


查询部分结果

GET czxy2/_search
{
  "query": {
    "match_all": {}
  },
  "_source": ["username","city"]
}


条件查询:匹配查询

GET czxy2/_search
{
  "query": {
    "match": {
      "username": "张三"
    }
  }
}

条件查询:复合查询(多条件查询)

bool:多条件拼接

must:必须

must_not:不含

should:可有可无

GET czxy2/_search
{
  "query": {
    "bool": {
      "must": [
        {
          "match": {
            "city": "山东"
          }
        }
      ],
      "must_not": [
        {
          "match": {
            "age": 22
          }
        }
      ]
    }
  }
}


should并集查询

注意:must和should同时存在的时候,should将会变得不起作用

GET czxy2/_search
{
  "query": {
    "bool": {
      "should": [
        {
          "match": {
            "city": "山东"
          }
        },
        {
          "match": {
            "city": "山西"
          }
        }
      ]
    }
  }
}

精确匹配

term 进行精确匹配(数据要求:数字、日期、布尔、not_analyzed的字符串(未分词))

GET czxy2/_search
{
  "query": {
    "term": {
      "age": 2
    }
  }
}


范围查询

range 用于确定范围,gt 大于、lt 小于、gte大于等于、lte小于等于

GET czxy2/_search
{
  "query": {
    "range": {
      "age": {
        "gte": 19,
        "lte": 21
      }
    }
  }
}

排序

GET czxy2/_search
{
  "query": {
    "match_all": {}
  },
  "sort": [
    {
      "age": {
        "order": "desc"
      }
    }
  ]
}


分页查询

from 设置索引号,从0开始

size 设置每页个数

GET czxy2/_search
{
  "query": {
    "match_all": {}
  },
  "from": 0,
  "size": 1
}


相关实践学习
使用阿里云Elasticsearch体验信息检索加速
通过创建登录阿里云Elasticsearch集群,使用DataWorks将MySQL数据同步至Elasticsearch,体验多条件检索效果,简单展示数据同步和信息检索加速的过程和操作。
ElasticSearch 入门精讲
ElasticSearch是一个开源的、基于Lucene的、分布式、高扩展、高实时的搜索与数据分析引擎。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr(也是基于Lucene)。 ElasticSearch的实现原理主要分为以下几个步骤: 用户将数据提交到Elastic Search 数据库中 通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据 当用户搜索数据时候,再根据权重将结果排名、打分 将返回结果呈现给用户 Elasticsearch可以用于搜索各种文档。它提供可扩展的搜索,具有接近实时的搜索,并支持多租户。
相关文章
|
18天前
|
存储 人工智能 API
(Elasticsearch)使用阿里云 infererence API 及 semantic text 进行向量搜索
本文展示了如何使用阿里云 infererence API 及 semantic text 进行向量搜索。
|
3月前
|
存储 人工智能 自然语言处理
Elasticsearch Inference API增加对阿里云AI的支持
本文将介绍如何在 Elasticsearch 中设置和使用阿里云的文本生成、重排序、稀疏向量和稠密向量服务,提升搜索相关性。
100 14
Elasticsearch Inference API增加对阿里云AI的支持
|
2月前
|
监控 API 索引
Elasticsearch集群使用 _cluster/health API
Elasticsearch集群使用 _cluster/health API
66 2
|
2月前
|
Unix API 索引
Elasticsearch集群使用 _cat/health API
Elasticsearch集群使用 _cat/health API
38 1
|
3月前
|
JSON Java 网络架构
elasticsearch学习四:使用springboot整合 rest 进行搭建elasticsearch服务
这篇文章介绍了如何使用Spring Boot整合REST方式来搭建和操作Elasticsearch服务。
157 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的案例教程。
250 0
elasticsearch学习五:springboot整合 rest 操作elasticsearch的 实际案例操作,编写搜索的前后端,爬取京东数据到elasticsearch中。
|
3月前
|
Java API Maven
使用 Smart-doc 记录 Spring REST API
使用 Smart-doc 记录 Spring REST API
65 0
|
20天前
|
人工智能 自然语言处理 API
Multimodal Live API:谷歌推出新的 AI 接口,支持多模态交互和低延迟实时互动
谷歌推出的Multimodal Live API是一个支持多模态交互、低延迟实时互动的AI接口,能够处理文本、音频和视频输入,提供自然流畅的对话体验,适用于多种应用场景。
67 3
Multimodal Live API:谷歌推出新的 AI 接口,支持多模态交互和低延迟实时互动