当前位置: 首页 > news >正文

Elasticsearch DSL版

文章目录

    • 1.索引库操作
      • 创建索引库:
      • 删除索引库:
      • 查询索引库:
      • 修改索引库:
      • 总结
    • 2.文档操作
      • 创建文档:
      • 查询文档:
      • 删除文档:
      • 全量修改文档:
      • 增量修改文档:
      • 总结
    • 3.DSL查询语法(前4个由query属性包裹)
      • 1.全文查询(3种)
        • match_all
        • match
        • multi_match
      • 2.精确查询(2种)
        • term
        • range
      • 3.地理查询(2种)
        • geo-bounding_box
        • geo_distance
      • 4.复合查询(2种)
        • function score Query
        • Bool Query
      • 5.搜索结果处理(3种)同级属性
        • sort排序
        • from/size分页
        • higlight高亮
      • 6.总结(4个顶级属性)

1.索引库操作

创建索引库:

PUT /索引库名
{"mapping":{"properties":{"字段名":{"type":"字段的类型"}//..略   }},
}//提高查询效率的方式
//将字段名1、2加入到all,那么查询直接搜索all一个字段效率提高2倍
PUT /索引库名
{"mapping":{"properties":{"字段名1":{"type":"字段的类型","copy_to":"all"},"字段名2":{"type":"字段的类型","copy_to":"all"},"all":{"type":"text","analyzer":"ik_max_word"}  }},
}
//搭配查询使用
GET /索引库名
{"query":{"match":{"all":"搜索内容"}}
}

删除索引库:

DELETE /索引库名

查询索引库:

GET /索引库名

修改索引库:

PUT /索引库名/_mapping
{"properties":{"新字段名":{"type":"类型"}}
}

总结

只有创建、修改需要请求体

2.文档操作

创建文档:

POST /索引库名/_doc/文档id
{"字段1":"","字段2":"","字段3":{"字段3-1":"","字段3-2":""}
}

查询文档:

GET /索引名/_doc/文档id

删除文档:

DELETE /索引库名/_doc/文档id

全量修改文档:

//若文档id不存在就是新增操作,否则就是全部修改PUT /索引库名/ _doc/文档id
{"字段1":"","字段2":""
}

增量修改文档:

POST /索引库名/ _update/文档id
{"doc":{"需要修改的字段名":"新的值"}
}

总结

只有创建、修改需要请求体

3.DSL查询语法(前4个由query属性包裹)

1.全文查询(3种)

match_all
// 1.查询所有
GET /索引库名/_search
{"query": {"match_all": {}}
}
match
// 2.单个字段查询,建议创建文档的时候把多个要查询的字段copy_to到一个字段all,提高查询性能
//all字段名
GET /索引库名/_search
{"query": {"match": {"all": "乡愁"}}
}
multi_match
// 3.多个字段查询
GET /索引库名/_search
{"query": {"multi_match": {"query": "需要查询内容","fields": ["字段1","字段2"]}}
}

2.精确查询(2种)

term
# 1.根据词条精确值查询
GET /索引库名/_search
{"query": {"term": {"字段名1": {"value": "内容"}}}
}
range
# 2.根据值得范围查询
#有e结尾代表=
GET /mingyue/_search
{"query": {"range": {"age": {"gt": 10,"lte": 20}}}
}

3.地理查询(2种)

geo-bounding_box
// 1.查询geo_point值落在某个矩形范文内得所有文档,大白话就是两个点相连形成的矩形
// 用的比较少
GET /索引库名/_search
{"query":{"geo-bounding_box":{"geo_point类型的字段":{"top_left":{"lat":31.1,"lon":121.9},"buttom_right":{"lat":38.1,"lon":121.9}}}}
}
geo_distance
//2.查询指定中心点范围内得所有文档
// 用的多
GET /索引库名/_search
{"query":{"geo_distance":{"distance":"15km","geo_point类型的字段":"经度,纬度"}}
}

4.复合查询(2种)

function score Query
// 1.function score Query
GET /索引库名/_search
{"query":{"function_score":{# 原始查询规则"query":{"match":{"字段名":"内容"}},"functions":'[{"filter":{"term":{"id":"1"}},# 过滤条件"weight":10 #算分函数}],"boost_mode":"multiply" # 算分函数}}
}
Bool Query
// 2.Bool Query 4个属性
GET /索引库名/_search
{"query":{"bool":{"must":[#类似与{"term":{"字段名1":"内容"}}],"should":[#类似或{"term":{"字段名2":"内容1"}}{"term":{"字段名2":"内容2"}}],"must_not":[#类似非,不参与算分,意思是不匹配<=500的{"range":{"字段名3":{"lte":500}}}],"filter":[#必须匹配>=45,不参与算分{"range":{"字段名4":{"gte":45}}}],}}
}

5.搜索结果处理(3种)同级属性

sort排序
// 1.排序
GET /索引库名/_search
{"query":{//查询条件 略……},"sort":{"排序字段":"排序方式",# asc desc"_geo_distance":{"geo_point类型的字段名":"经度,纬度","geo_point类型的字段名":{ # 对象方式书写"lat":经度"lon":纬度},"order":"排序方式","unit":"km"# 单位}}
}
from/size分页
// 2.分页
GET /索引库名/_search
{"query":{//查询条件 略……},"sort":{"排序字段":"排序方式",# asc desc},"from":页码,"size":条数
}
higlight高亮
// 2.高亮
GET /索引库名/_search
{"query":{//查询条件 略……},"sort":{"排序字段":"排序方式",# asc desc},"highlight":{"fields":{# 指定要高亮的字段"字段名":{"require_field_match":"false" #搜索字段与高亮字段不一致需要加上}}},"from":页码,"size":条数
}

6.总结(4个顶级属性)

查询语法有4个顶级属性

分别是query、sort、from/size、highlight

相关文章:

Elasticsearch DSL版

文章目录 1.索引库操作创建索引库&#xff1a;删除索引库&#xff1a;查询索引库&#xff1a;修改索引库&#xff1a;总结 2.文档操作创建文档&#xff1a;查询文档&#xff1a;删除文档&#xff1a;全量修改文档&#xff1a;增量修改文档&#xff1a;总结 3.DSL查询语法&#…...

2024-12-29-sklearn学习(26)模型选择与评估-交叉验证:评估估算器的表现 今夜偏知春气暖,虫声新透绿窗纱。

文章目录 sklearn学习(26) 模型选择与评估-交叉验证&#xff1a;评估估算器的表现26.1 计算交叉验证的指标26.1.1 cross_validate 函数和多度量评估26.1.2 通过交叉验证获取预测 26.2 交叉验证迭代器26.2.1 交叉验证迭代器–循环遍历数据26.2.1.1 K 折26.2.1.2 重复 K-折交叉验…...

STM32CUBEIDE FreeRTOS操作教程(十二):std dynamic memory 标准动态内存

STM32CUBEIDE FreeRTOS操作教程&#xff08;十二&#xff09;&#xff1a;std dynamic memory 标准动态内存 STM32CUBE开发环境集成了STM32 HAL库进行FreeRTOS配置和开发的组件&#xff0c;不需要用户自己进行FreeRTOS的移植。这里介绍最简化的用户操作类应用教程。以STM32F40…...

异步爬虫之aiohttp的使用

在上一篇博客我们介绍了异步爬虫的基本原理和 asyncio 的基本用法&#xff0c;并且在最后简单提及了使用aiohttp 实现网页爬取的过程。本篇博客我们介绍一下 aiohttp 的常见用法。 基本介绍 前面介绍的 asyncio模块&#xff0c;其内部实现了对 TCP、UDP、SSL协议的异步操作&a…...

【Rust自学】9.1. 不可恢复的错误以及panic!

喜欢的话别忘了点赞、收藏加关注哦&#xff0c;对接下来的教程有兴趣的可以关注专栏。谢谢喵&#xff01;(&#xff65;ω&#xff65;) 9.1.1. Rust错误处理概述 Rust拥有极高的可靠性&#xff0c;这也延伸到了错误处理的领域。比如说在大部分情况下&#xff0c;Rust会迫使你…...

【老张的程序人生】一天时间,我成软考高级系统分析师

今年下半年&#xff0c;我心血来潮报考了软考高级系统分析师。彼时的我&#xff0c;工作繁忙至极&#xff0c;一周十四节课&#xff0c;班主任的职责压身&#xff0c;还兼任教学管理事务&#xff0c;每日忙得晕头转向&#xff0c;那点可怜的闲暇时光&#xff0c;也都奉献给了游…...

vue使用el-select下拉框自定义复选框

在 Vue 开发中&#xff0c;高效且美观的组件能极大地提升用户体验和开发效率。在vue中使用elementplus 的 el-select下拉框实现了一个自定义的多选下拉框组件。 一、代码功能概述 这段代码创建了一个可多选的下拉框组件&#xff0c;通过el-select和el-checkbox-group结合的方…...

k8s基础(2)—Kubernetes-Namespace

一、Namespace概述 名字空间 在 Kubernetes 中&#xff0c;名字空间&#xff08;Namespace&#xff09; 提供一种机制&#xff0c;将同一集群中的资源划分为相互隔离的组。 同一名字空间内的资源名称要唯一&#xff0c;但跨名字空间时没有这个要求。 名字空间作用域仅针对带有…...

APM for Large Language Models

APM for Large Language Models 随着大语言模型&#xff08;LLMs&#xff09;在生产环境中的广泛应用&#xff0c;确保其可靠性和可观察性变得至关重要。应用性能监控&#xff08;APM&#xff09;在这一过程中发挥了关键作用&#xff0c;帮助开发者和运维人员深入了解LLM系统的…...

Spark Runtime Filter

Runtime Filter 参考链接&#xff1a; https://docs.google.com/document/d/16IEuyLeQlubQkH8YuVuXWKo2-grVIoDJqQpHZrE7q04/edit?tabt.0https://www.modb.pro/db/557718https://issues.apache.org/jira/browse/SPARK-32268https://github.com/apache/spark/pull/35789https…...

AI大模型系列之七:Transformer架构讲解

目录 Transformer网络是什么&#xff1f; 输入模块结构&#xff1a; 编码器模块结构&#xff1a; 解码器模块: 输出模块结构&#xff1a; Transformer 具体是如何工作的&#xff1f; Transformer核心思想是什么&#xff1f; Transformer的代码架构 自注意力机制是什么…...

基于51单片机(STC12C5A60S2)和8X8彩色点阵屏(WS2812B驱动)的小游戏《贪吃蛇》(普中开发板矩阵按键控制)

目录 系列文章目录前言一、效果展示二、原理分析三、各模块代码1、定时器02、矩阵按键3、8X8彩色点阵屏 四、主函数总结 系列文章目录 前言 《贪吃蛇》&#xff0c;一款经典的、怀旧的小游戏&#xff0c;单片机入门必写程序。 以《贪吃蛇》为载体&#xff0c;熟悉各种屏幕的使…...

遇到复杂的 递归查询sql 需要oracle 转pgsql 可以把数据表结构给ai

遇到复杂的 递归查询sql 需要oracle 转pgsql 可以把数据表结构给ai 并且 建立备份表 把需要的很少的数据放到表里面 这样 ai 可以很好的判断sql 咋写 还可以&#xff0c;让ai解释oracle sql 然后拿到描述和表和字段&#xff0c;给ai让他生成pgsql 的sql&#xff0c;亲测有效...

Zynq PS端外设之GPIO

1. GPIO&#xff08;通用输入/输出&#xff09; GPIO外设有4个Bank&#xff0c;Bank0/1通过MIO连接到PS的引脚上&#xff1b;Bank2/3通过EMIO连接到PL的引脚上。 注意&#xff1a;Bank1的电平要改成LVCOMS 1.8 GPIO寄存器 寄存器&#xff1a; DATA_RO&#xff1a; 读取GPIO的输…...

Spring Boot项目开发常见问题及解决方案(上)

启动相关问题 问题 1&#xff1a;项目启动时报错“找不到主类” 在使用 Spring Boot 打包成可执行 JAR 文件后启动&#xff0c;有时会遇到这个头疼的问题。通常是因为打包配置有误或者项目结构不符合要求。 解决方案&#xff1a; 首先&#xff0c;检查 pom.xml&#xff08;Ma…...

Elasticsearch: 高级搜索

这里写目录标题 一、match_all匹配所有文档1、介绍&#xff1a; 二、精确匹配1、term单字段精确匹配查询2、terms多字段精确匹配3、range范围查询4、exists是否存在查询5、ids根据一组id查询6、prefix前缀匹配7、wildcard通配符匹配8、fuzzy支持编辑距离的模糊查询9、regexp正则…...

STM32 拓展 电源控制

目录 电源控制 电源框图 VDDA供电区域 VDD供电区域 1.8V低电压区域 后备供电区域 电压调节器 上电复位和掉电复位 可编程电压检测器(PVD) 低功耗 睡眠模式(只有CUP(老板)睡眠) 进入睡眠模式 退出睡眠模式 停机(停止)模式(只留核心区域(上班)) 进入停…...

SpringBootWeb案例-1

文章目录 SpringBootWeb案例1. 准备工作1.1 需求&环境搭建1.1.1 需求说明1.1.2 环境搭建 1.2 开发规范 2. 部门管理2.1 查询部门2.1.1 原型和需求2.1.2 接口文档2.1.3 思路分析2.1.4 功能开发2.1.5 功能测试 2.2 前后端联调2.3 删除部门2.3.1 需求2.3.2 接口文档2.3.3 思路…...

HTML——57. type和name属性

<!DOCTYPE html> <html><head><meta charset"UTF-8"><title>type和name属性</title></head><body><!--1.input元素是最常用的表单控件--><!--2.input元素不仅可以在form标签内使用也可以在form标签外使用-…...

应用架构模式-总体思路

采用引导式设计方法&#xff1a;以企业级架构为指导&#xff0c;形成较为齐全的规范指引。在实践中总结重要设计形成决策要点&#xff0c;一个决策要点对应一个设计模式。自底向上总结采用该设计模式的必备条件&#xff0c;将之转化通过简单需求分析就能得到的业务特点&#xf…...

无线渗透测试框架Airecon:自动化工具链整合与实战应用

1. 项目概述与核心价值最近在整理自己的渗透测试工具箱时&#xff0c;又翻出了pikpikcu/airecon这个老伙计。说实话&#xff0c;在无线安全评估这个细分领域里&#xff0c;它可能不是名气最响的那个&#xff0c;但绝对是我个人在内部网络渗透和红队演练中最顺手、最高效的“组合…...

FPGA高速ADC数据采集实战——基于AD9253 LVDS接口与ISERDESE2设计

1. AD9253高速ADC核心特性解析 AD9253这颗14位125MSPS四通道ADC芯片&#xff0c;在通信和医疗成像领域堪称经典。我经手过的多个雷达项目中&#xff0c;它的信噪比表现总能带来惊喜——75.3dBFS的实测数据比手册标称值还要稳定。但真正让工程师们又爱又恨的&#xff0c;是它那个…...

基于Sovereign-MCP-Servers构建私有AI工具链:从协议原理到Docker化部署

1. 项目概述与核心价值最近在折腾AI应用开发&#xff0c;特别是想给Claude、Cursor这类工具加上“联网”和“执行”能力时&#xff0c;绕不开一个概念&#xff1a;MCP&#xff08;Model Context Protocol&#xff09;。简单说&#xff0c;MCP就是一套标准协议&#xff0c;它能让…...

像素艺术家紧急预警:Midjourney即将关闭--tile参数兼容性(倒计时14天),现在必须掌握的3种替代渲染方案

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;像素艺术家紧急预警&#xff1a;Midjourney即将关闭--tile参数兼容性&#xff08;倒计时14天&#xff09; Midjourney v6.5 已正式宣布将于 14 天后终止对 --tile 参数的原生支持&#xff0c;此举将直…...

基于Rust与Candle的AI推理引擎cria:简化大模型本地部署与优化

1. 项目概述&#xff1a;从“左移”到“创造”的AI推理引擎 最近在折腾AI模型本地部署和推理优化的朋友&#xff0c;可能都绕不开一个名字&#xff1a; cria 。这个由 leftmove 开源的项目&#xff0c;全称是“Cria: The AI Inference Engine”&#xff0c;直译过来就是“创…...

【STC8H】GPIO模式深度解析:从准双向到推挽,如何精准控制外设

1. STC8H的GPIO模式全景解析 第一次接触STC8H的GPIO配置时&#xff0c;我被那个神秘的PxM0和PxM1寄存器搞得晕头转向。直到有一次调试I2C通讯失败&#xff0c;才发现是开漏模式配置错误。这次教训让我明白&#xff0c;理解GPIO的四种工作模式&#xff0c;就像掌握不同武器的使用…...

Java源码详解:深入Java并发之AtomicBoolean全景式解析——无锁布尔标志的精妙实现与云原生演进

概述 在高并发编程中&#xff0c;一个看似简单的布尔标志位&#xff08;如 shutdown、initialized&#xff09;也可能成为线程安全的隐患。传统的 volatile boolean 虽能保证可见性&#xff0c;却无法保证 “读-改-写” 操作的原子性。为解决这一问题&#xff0c;Java并发包&a…...

AI智能体文件管理:从零构建统一资产仓库与版本控制系统

1. 项目概述与核心价值最近在折腾AI智能体开发的朋友&#xff0c;估计没少为文件管理这事儿头疼。你辛辛苦苦训练好的模型、精心设计的提示词模板、还有那些五花八门的配置文件&#xff0c;是不是散落在各个角落&#xff0c;每次想复现或者分享都得一通乱找&#xff1f;更别提团…...

基于树莓派与电子墨水屏的慢速电影播放器制作全攻略

1. 项目概述&#xff1a;当电影遇见电子墨水如果你和我一样&#xff0c;对电子墨水&#xff08;eInk&#xff09;屏幕那种独特的、像印刷品一样的显示效果着迷&#xff0c;同时又是个喜欢折腾树莓派&#xff08;Raspberry Pi&#xff09;的玩家&#xff0c;那么这个项目绝对能让…...

Playnite完整指南:高效统一你的跨平台游戏库管理体验

Playnite完整指南&#xff1a;高效统一你的跨平台游戏库管理体验 【免费下载链接】Playnite Video game library manager with support for wide range of 3rd party libraries and game emulation support, providing one unified interface for your games. 项目地址: http…...