RESTfull接口访问Elasticsearch

2024-04-02 13:44

本文主要是介绍RESTfull接口访问Elasticsearch,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

【数据库的健康值】
curl -X GET  "ip:9200/_cat/health"

【查看所有索引】
curl -X GET "ip:9200/_cat/indices?v"

【查看索引index_name】
curl -X GET "ip:9200/索引?pretty"


【创建索引/文档】
PUT "ip:9200/索引/文档id"
{请求体}

【更新文档】
POST /索引/类型/文档id/_update
{
    "doc": {
        "name": "赤羽信之戒",
        "age": 46
    }
}

【删除文档】
DELETE 索引/类型/文档Id

---------------------------------【查询文档】------------------------------
GET 索引/类型/文档id

GET 索引/类型/_search?q=name:smy

精确匹配
GET 索引/_search
{
  "query": {
    "match": {  
      "name": "任飘渺"
    }
  }
}

and 过滤

GET 索引/_search
{
  "query": {
    "bool": {
      "must": [
        {
          "match": {
            "name": "任飘渺"
          }
        },
        {
          "match": {
            "age": "40"
          }
        }
      ]
    }
  }
}

or 过滤

GET 索引/_search
{
  "query": {
    "bool": {
      "should": [
        {
          "match": {
            "name": "任飘渺"
          }
        },
        {
          "match": {
            "age": "40"
          }
        }
      ]
    }
  }
}

not 过滤

GET 索引/_search
{
  "query": {
    "bool": {
      "must_not": [
        {
          "match": {
            "age": "40"
          }
        }
      ]
    }
  }
}

范围过滤
GET 索引/_search
{
  "query": {
    "bool": {
      "must": [
        {
          "match": {
            "name": "任飘渺"
          }
        }
      ],
      "filter": {
        "range": {
          "age": {
            "gt": 20,
            "lt": 40
          }
        }
      }
    }
  }
}

精确查询  精确查询是通过term关键字来实现的,他的底层是通过直接查询倒排索引,效率更高!
关于分词的解释:
(1)term:直接查询精确的
(2)match:会使用分词器(会先分析文档,然后通过分析的文档进行查询!查询效率低)

说明:如果类型是text类型,那么是可以被分词器解析的;如果是keyword类型的,是不能被分词器解析,想使用match或者term来查询这个字段匹配的,只能查询出完全匹配的数据来,其他的数据差一个字符都不能被查询出来!

GET 索引/_search
{
  "query": {
    "bool": {
      "should": [
        {
          "term": {
            "name": "任飘渺"
          }
        },
        {
          "term": {
            "age": "40"
          }
        }
      ]
    }
  }
}

过滤字段

GET 索引/_search
{
  "_source":["name","age"],
  "query": {
    "match": {
      "name": "任飘渺"
    }
  }
}

排序
GET 索引/_search
{
  "query": {
    "match": {
      "name": "任飘渺"
    }
  },
  "sort": [
    {
      "age": {
        "order": "asc"
      }
    }
  ],
  "from":0,
  "size":1
}

这篇关于RESTfull接口访问Elasticsearch的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/870139

相关文章

SpringBoot实现不同接口指定上传文件大小的具体步骤

《SpringBoot实现不同接口指定上传文件大小的具体步骤》:本文主要介绍在SpringBoot中通过自定义注解、AOP拦截和配置文件实现不同接口上传文件大小限制的方法,强调需设置全局阈值远大于... 目录一  springboot实现不同接口指定文件大小1.1 思路说明1.2 工程启动说明二 具体实施2

通过配置nginx访问服务器静态资源的过程

《通过配置nginx访问服务器静态资源的过程》文章介绍了图片存储路径设置、Nginx服务器配置及通过http://192.168.206.170:8007/a.png访问图片的方法,涵盖图片管理与服务... 目录1.图片存储路径2.nginx配置3.访问图片方式总结1.图片存储路径2.nginx配置

基于Redisson实现分布式系统下的接口限流

《基于Redisson实现分布式系统下的接口限流》在高并发场景下,接口限流是保障系统稳定性的重要手段,本文将介绍利用Redisson结合Redis实现分布式环境下的接口限流,具有一定的参考价值,感兴趣... 目录分布式限流的核心挑战基于 Redisson 的分布式限流设计思路实现步骤引入依赖定义限流注解实现

SpringBoot实现RSA+AES自动接口解密的实战指南

《SpringBoot实现RSA+AES自动接口解密的实战指南》在当今数据泄露频发的网络环境中,接口安全已成为开发者不可忽视的核心议题,RSA+AES混合加密方案因其安全性高、性能优越而被广泛采用,本... 目录一、项目依赖与环境准备1.1 Maven依赖配置1.2 密钥生成与配置二、加密工具类实现2.1

使用Python的requests库调用API接口的详细步骤

《使用Python的requests库调用API接口的详细步骤》使用Python的requests库调用API接口是开发中最常用的方式之一,它简化了HTTP请求的处理流程,以下是详细步骤和实战示例,涵... 目录一、准备工作:安装 requests 库二、基本调用流程(以 RESTful API 为例)1.

WinForm跨线程访问UI及UI卡死的解决方案

《WinForm跨线程访问UI及UI卡死的解决方案》在WinForm开发过程中,跨线程访问UI控件和界面卡死是常见的技术难题,由于Windows窗体应用程序的UI控件默认只能在主线程(UI线程)上操作... 目录前言正文案例1:直接线程操作(无UI访问)案例2:BeginInvoke访问UI(错误用法)案例

MySQL中的InnoDB单表访问过程

《MySQL中的InnoDB单表访问过程》:本文主要介绍MySQL中的InnoDB单表访问过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、背景2、环境3、访问类型【1】const【2】ref【3】ref_or_null【4】range【5】index【6】

前端如何通过nginx访问本地端口

《前端如何通过nginx访问本地端口》:本文主要介绍前端如何通过nginx访问本地端口的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、nginx安装1、下载(1)下载地址(2)系统选择(3)版本选择2、安装部署(1)解压(2)配置文件修改(3)启动(4)

SpringBoot+Redis防止接口重复提交问题

《SpringBoot+Redis防止接口重复提交问题》:本文主要介绍SpringBoot+Redis防止接口重复提交问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不... 目录前言实现思路代码示例测试总结前言在项目的使用使用过程中,经常会出现某些操作在短时间内频繁提交。例

springboot下载接口限速功能实现

《springboot下载接口限速功能实现》通过Redis统计并发数动态调整每个用户带宽,核心逻辑为每秒读取并发送限定数据量,防止单用户占用过多资源,确保整体下载均衡且高效,本文给大家介绍spring... 目录 一、整体目标 二、涉及的主要类/方法✅ 三、核心流程图解(简化) 四、关键代码详解1️⃣ 设置