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

wordpress po mo/优化方案官方网站

wordpress po mo,优化方案官方网站,河北网站制作,随州网站建设哪家好什么是DSL? Elasticsearch提供丰富且灵活的查询语言叫做DSL查询(Query DSL),它允许你构建更加复杂、强大的查询。 DSL(Domain Specific Language特定领域语言)以JSON请求体的形式出现。目前常用的框架查询方法什么的底层都是构建DSL语句实现的,所以你必…

在这里插入图片描述

什么是DSL?

Elasticsearch提供丰富且灵活的查询语言叫做DSL查询(Query DSL),它允许你构建更加复杂、强大的查询。 DSL(Domain Specific Language特定领域语言)以JSON请求体的形式出现。目前常用的框架查询方法什么的底层都是构建DSL语句实现的,所以你必须掌握DSL。
例如:

GET book/_search
{"query": {"match": {"name": "活着"}}
}

准备测试数据

请参考我的另一篇文章:https://blog.csdn.net/IndexMan/article/details/140611813
#精确查询
也就是term查询不会分析查询条件,只有当词条和查询字符串完全匹配时才匹配,也就是精确查找,比如数字,日期,布尔值或 not_analyzed 的字符串(未经分析的文本数据类型):
GET /article_doc/_doc/1815982664109314052

  • 请求
{"query": {"term": {"category": "技术"}}
}
  • 响应
{"_index": "article_doc","_type": "_doc","_id": "1815982664109314052","_version": 1,"_seq_no": 4,"_primary_term": 1,"found": true,"_source": {"author": "华为","category": "技术","content": "就在昨天,华为正式官宣自研编程语言 「仓颉」 正式诞生!!!\r\n\r\n华为,作为全球领先的信息与通信技术(ICT)解决方案提供商,以“仓颉”编程语言的诞生,再次引领了技术革新的潮流,为智能时代的软件开发定义了新的艺术。","createTime": "2024-07-24 13:29:41","id": "1815982664109314052","readCount": 1,"title": "华为自研编程语言“仓颉”正式发布"}
}

terms查询:terms 跟 term 有点类似,但 terms 允许指定多个匹配条件。 如果某个字段指定了多个值,那么文档需要一起去 做匹配:

{"query": {"terms": {"category": [ "技术","管理"]}}
}

全文查询

顾名思义,全文查询会分析查询条件,先将查询条件进行分词,然后查询,求并集。

区别于term,match的区别是:match是经过analyer分词器分词的,也就是说,文档首先被分析器给处理了。根据不同的分析器,分析的结果也稍显不同,然后再根据分词结果进行匹配。term则不经过分词,它是直接去倒排索引中查找了精确的值了。

match 查询的主要用法:

  • match_all:查询所有,无条件;太简单不再演示!
  • match:返回所有匹配到的数据
  • match_phrase:短语查询,在match的基础上进一步查询词组,可以指定slop分词间隔。
{"query": {"match_phrase": {"content": {"query": "中国"}}}
}
  • match_phrase_prefix:前缀查询,根据短语中最后一个词组做前缀匹配,可以应用于搜索提示,但注意和max_expanions搭配。
  • multi_match:多字段查询,使用相当的灵活,可以完成match_phrase和match_phrase_prefix的工作。

post /article_doc/_search

  • 请求
{"query": {"match": {"content": "技术"}}
}
  • 响应
{"took": 11,"timed_out": false,"_shards": {"total": 1,"successful": 1,"skipped": 0,"failed": 0},"hits": {"total": {"value": 1,"relation": "eq"},"max_score": 3.3864474,"hits": [{"_index": "article_doc","_type": "_doc","_id": "1815982664109314052","_score": 3.3864474,"_source": {"author": "华为","category": "技术","content": "就在昨天,华为正式官宣自研编程语言 「仓颉」 正式诞生!!!\r\n\r\n华为,作为全球领先的信息与通信技术(ICT)解决方案提供商,以“仓颉”编程语言的诞生,再次引领了技术革新的潮流,为智能时代的软件开发定义了新的艺术。","createTime": "2024-07-24 13:29:41","id": "1815982664109314052","readCount": 1,"title": "华为自研编程语言“仓颉”正式发布"}}]}
}
  • 多字段查询
{"query": {"multi_match": {"query": "中国","fields": ["title","content"]}}
}

排序查询

例如,按照文章阅读数降序排序:

{"query": {"match_all": {}},"sort": [{"readCount": {"order": "desc"}}]
}

范围查询

range 过滤允许我们按照指定范围查找一批数据,范围操作符包含:

  • gt:大于,相当于关系型数据库中的 >
  • gte:大于等于,相当于关系型数据库中的 >=
  • lt:小于,相当于关系型数据库中的 <
  • lte:小于等于,相当于关系型数据库中的 <=

例如,查询文章阅读数大于5的文章列表:

{"query": {"range": {"readCount": {"gt": 5}}}
}

分页查询

{"query": {"match_all": {}},"from": 0,"size": 5
}

高亮查询

{"query": {"match": {"content": "智能"}},"highlight": {"fields": {"content": {"pre_tags": "<b class='key' style='color:red'>","post_tags": "</b>"}}}
}
{"took": 32,"timed_out": false,"_shards": {"total": 1,"successful": 1,"skipped": 0,"failed": 0},"hits": {"total": {"value": 3,"relation": "eq"},"max_score": 1.2924489,"hits": [{"_index": "article_doc","_type": "_doc","_id": "1815982664109314052","_score": 1.2924489,"_source": {"author": "华为","category": "技术","content": "就在昨天,华为正式官宣自研编程语言 「仓颉」 正式诞生!!!\r\n\r\n华为,作为全球领先的信息与通信技术(ICT)解决方案提供商,以“仓颉”编程语言的诞生,再次引领了技术革新的潮流,为智能时代的软件开发定义了新的艺术。","createTime": "2024-07-24 13:29:41","id": "1815982664109314052","readCount": 1,"title": "华为自研编程语言“仓颉”正式发布"},"highlight": {"content": ["华为,作为全球领先的信息与通信技术(ICT)解决方案提供商,以“仓颉”编程语言的诞生,再次引领了技术革新的潮流,为<b class='key' style='color:red'>智能</b>时代的软件开发定义了新的艺术。"]}},{"_index": "article_doc","_type": "_doc","_id": "1815982664180617221","_score": 0.9935417,"_source": {"author": "狸花猫","category": "人工智能","content": "在信息时代,Web 页面成为我们与世界交互的重要窗口。如今,AI 程序的出现,为 Web 页面带来了新的变革。通过在 Web 页面上实现图片识别,我们即将迈入一个更加智能与便捷的时代。它将赋予网页全新的能力,使其能够理解图片的内容,为用户带来前所未有的体验。让我们一同踏上这充满无限可能的探索之旅。\n\n作者:睡着学\n链接:https://juejin.cn/post/7359084330121789452\n来源:稀土掘金\n著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。","createTime": "2024-07-24 13:29:41","id": "1815982664180617221","readCount": 3,"title": "AI 赋能007 jack  Web 页面,图像识别超越想象"},"highlight": {"content": ["通过在 Web 页面上实现图片识别,我们即将迈入一个更加<b class='key' style='color:red'>智能</b>与便捷的时代。它将赋予网页全新的能力,使其能够理解图片的内容,为用户带来前所未有的体验。让我们一同踏上这充满无限可能的探索之旅。"]}},{"_index": "article_doc","_type": "_doc","_id": "1815982664180617220","_score": 0.85687244,"_source": {"author": "kimi","category": "人工智能","content": "今年,随着各大GLM模型的开源和算力的提升,尤其是最近比较火热的月之暗面的Kimi 模型,AI应用场景中的各种智能体如雨后春笋般涌现。许多同学们纷纷表达了加入AI应用的学习和测试的愿望,然而各大模型提供商所提供的API的免费tokens在数量和其他方面都存在着不同的限制,这给我们这些白嫖党带来了一定的不便。今天,在GitHub上,我发现了这个名为kimi-free-api的项目,它为我们学习和测试使用GLM模型提供了极大的便利。\n\n作者:修己xj\n链接:https://juejin.cn/post/7357546247848427558\n来源:稀土掘金\n著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。","createTime": "2024-07-22 13:29:41","id": "1815982664180617220","readCount": 10,"title": "免费使用Kimi的API接口,kimi-free-api真香"},"highlight": {"content": ["今年,随着各大GLM模型的开源和算力的提升,尤其是最近比较火热的月之暗面的Kimi 模型,AI应用场景中的各种<b class='key' style='color:red'>智能</b>体如雨后春笋般涌现。"]}}]}
}

布尔查询

bool 查询可以用来合并多个条件查询结果的布尔逻辑,它包含以下操作符:

  • must:多个查询条件必须完全匹配,相当于关系型数据库中的 且 and
  • should:至少有一个查询条件匹配,相当于关系型数据库中的 或 or
  • must_not: 多个查询条件的相反匹配,相当于关系型数据库中的 非 not
  • filter:过滤满足条件的数据。

range:条件筛选范围,上面讲过了

{"query": {"bool": {"should": [{"match": {"title": "智能"}},{"match": {"content": "智能"}}]}}
}

聚合查询

我们平时在使用Elasticsearch时,更多会用到聚合操作,它类似SQL中的group by操作。ES的聚合查询一定是先查出结果,然后对结果使用聚合函数做处理,常用的操作有:avg:求平均、max:最大值、min:最小值、sum:求和等。

在ES中聚合分为指标聚合和分桶聚合:

  • 指标聚合:指标聚合对一个数据集求最大、最小、和、平均值等
{"query": {"match_all": {}},"aggs": {"avg_read": {"avg": {"field": "readCount"}}},"_source": ["id","readCount"]
}
  • 响应
{"took": 5,"timed_out": false,"_shards": {"total": 1,"successful": 1,"skipped": 0,"failed": 0},"hits": {"total": {"value": 10,"relation": "eq"},"max_score": 1,"hits": [{"_index": "article_doc","_type": "_doc","_id": "1815982662364483586","_score": 1,"_source": {"id": "1815982662364483586","readCount": 0}},{"_index": "article_doc","_type": "_doc","_id": "1815982664109314049","_score": 1,"_source": {"id": "1815982664109314049","readCount": 1}},{"_index": "article_doc","_type": "_doc","_id": "1815982664109314050","_score": 1,"_source": {"id": "1815982664109314050","readCount": 2}},{"_index": "article_doc","_type": "_doc","_id": "1815982664109314052","_score": 1,"_source": {"id": "1815982664109314052","readCount": 1}},{"_index": "article_doc","_type": "_doc","_id": "1815982664109314053","_score": 1,"_source": {"id": "1815982664109314053","readCount": 5}},{"_index": "article_doc","_type": "_doc","_id": "1815982664180617218","_score": 1,"_source": {"id": "1815982664180617218","readCount": 6}},{"_index": "article_doc","_type": "_doc","_id": "1815982664180617219","_score": 1,"_source": {"id": "1815982664180617219","readCount": 0}},{"_index": "article_doc","_type": "_doc","_id": "1815982664180617220","_score": 1,"_source": {"id": "1815982664180617220","readCount": 10}},{"_index": "article_doc","_type": "_doc","_id": "1815982664109314051","_score": 1,"_source": {"id": "1815982664109314051","readCount": 3}},{"_index": "article_doc","_type": "_doc","_id": "1815982664180617221","_score": 1,"_source": {"id": "1815982664180617221","readCount": 3}}]},"aggregations": {"avg_read": {"value": 3.1}}
}
  • 分桶聚合:除了有聚合函数外,还可以对查询出的数据进行分组group by,再在组上进行游标聚合。
{"size": 0,"query": {"match_all": {}},"aggs": {"age_group": {"terms": {"field": "category"}}}
}
  • 响应:
{"took": 208,"timed_out": false,"_shards": {"total": 1,"successful": 1,"skipped": 0,"failed": 0},"hits": {"total": {"value": 10,"relation": "eq"},"max_score": null,"hits": []},"aggregations": {"age_group": {"doc_count_error_upper_bound": 0,"sum_other_doc_count": 0,"buckets": [{"key": "人工智能","doc_count": 3},{"key": "技术","doc_count": 2},{"key": "经济","doc_count": 2},{"key": "生活","doc_count": 1},{"key": "管理","doc_count": 1},{"key": "面试","doc_count": 1}]}}
}

总结

以上就是DSL的核心用法,用到了再看也不迟,单纯记忆很快就会忘记没啥用。

相关文章:

ElasticSearch核心之DSL查询语句实战

什么是DSL&#xff1f; Elasticsearch提供丰富且灵活的查询语言叫做DSL查询(Query DSL),它允许你构建更加复杂、强大的查询。 DSL(Domain Specific Language特定领域语言)以JSON请求体的形式出现。目前常用的框架查询方法什么的底层都是构建DSL语句实现的&#xff0c;所以你必…...

Axure中继器:数据动态展示的强大工具

在Axure RP这一强大的原型设计工具中&#xff0c;中继器&#xff08;Repeater&#xff09;无疑是一颗璀璨的明珠。它以其独特的功能和广泛的应用场景&#xff0c;成为设计师在创建数据密集型原型时的首选。本文将深入探讨Axure中继器的特点、使用方式及其在数据动态展示中的重要…...

QT--聊天室

一、设计要求 用QT做一个聊天室&#xff0c; 制作一个服务器和客户端。可以进行注册、登录&#xff0c; 登陆成功后可以使用昵称进行发送、接收消息。 能根据昵称、聊天内容查询历史记录&#xff0c;也可以查询全部聊天记录。 。 二、客户端三级ui界面 三、项目代码 //在…...

Javascript前端面试基础4【每日学习并更新10】

同步和异步的区别 同步:浏览器访问服务器请求&#xff0c;用户看得到页面刷新&#xff0c;重新发请求等请求完&#xff0c;页面刷新,新内容出现&#xff0c;用户看到新内容,进行下一步操作异步:浏览器访问服务器请求&#xff0c;用户正常操作&#xff0c;浏览器后端进行请求。等…...

社区团购系统搭建开发,前端uniapp。社区团购搭建开发定制

目录 前言&#xff1a; 一、社区团购系统有哪些功能&#xff1f; 二、社区团购管理端 三、社区团购的基本流程如下&#xff1a; 总结 &#xff1a; 前言&#xff1a; 社区团购是一种以社区为单位进行的集体购物模式。这种模式利用了互联网平台来组织同一社区内的居民一起购…...

node+mysql+layui+ejs实现左侧导航栏菜单动态显示

nodemysqllayuiejs实现左侧导航菜单动态显示 实现思路效果图数据库技术栈代码实现main.html&#xff08;前端首页页面&#xff09;查询资源菜单方法 jsapp.js配置ejs模板 node入门到入土项目实战开始&#xff0c;前端篇项目适合node小白入门&#xff0c;因为我也是小白来学习no…...

FRP配置内网穿透52版本以上适用

简述 适用frp配置内网穿透来说我们需要进行简单的区分&#xff0c;具有公网IP的服务器我们简称为服务端&#xff0c;内网的服务器我们可以简称为客户端&#xff0c;frp需要针对不同的服务器配置不同的文件 下载安装包 Linux下载地址 https://github.com/fatedier/frp/relea…...

IFM易福门LR3000LR3300液位传感器操作说明

IFM易福门LR3000LR3300液位传感器操作说明...

【Python大语言模型系列】基于阿里云人工智能平台采用P-Tuning v2微调ChatGLM2-6B大模型(完整教程)

这是我的第331篇原创文章。 一、引言 P-Tuning 是一种对预训练语言模型进行少量参数微调的技术。所谓预训练语言模型&#xff0c;就是指在大规模的语言数据集上训练好的、能够理解自然语言表达并从中学习语言知识的模型。P-Tuning 所做的就是根据具体的任务&#xff0c;对预训练…...

基于Spring boot + Vue的加油站系统

项目名称&#xff1a;加油站系统 作者的B站地址&#xff1a;程序员云翼的个人空间-程序员云翼个人主页-哔哩哔哩视频 csdn地址&#xff1a;程序员云翼-CSDN博客 1.项目技术栈&#xff1a; 前后端分离的项目 后端&#xff1a;Springboot MybatisPlus 前端&#xff1a;Vue…...

️RPC协议 --基于TCP实现RPC通信

RPC 协议介绍 RPC(Remote Procedure Call,远程过程调用)协议是一种通信协议,允许一个程序调用另一个地址空间(通常是在网络上)的过程或函数,而不需要显式地处理细节如数据序列化和网络通信。它允许开发人员编写分布式应用程序,就像编写本地应用程序一样。 关键特点和组…...

android(安卓)最简单明了解释版本控制之MinSdkVersion、CompileSdkVersion、TargetSdkVersion

1、先明白几个概念 &#xff08;1&#xff09;平台版本&#xff08;Android SDK版本号&#xff09; 平台版本也就是我们平时说的安卓8、安卓9、安卓10 &#xff08;2&#xff09;API级别&#xff08;API Level&#xff09; Android 平台提供的框架 API 被称作“API 级别” …...

Redis缓存穿透、击穿和雪崩的理解和解决思路

Redis的缓存穿透 缓存穿透是指那些查询请求所要获取的数据既不在缓存&#xff08;Redis&#xff09;中&#xff0c;也不在数据库&#xff08;例如&#xff1a;MySQL&#xff09;中&#xff0c;因此每次请求都会直接访问数据库。这种情况通常由以下几种情形引起&#xff1a; 恶…...

ReactHooks(完结)

上期戳here ReactHooks[三] 一.memo 函数1.1 语法格式 二. useMemo2.1 问题引入2.2 语法格式2.3 使用 useMemo 解决刚才的问题 三.useCallback3.1 useMemo和useCallback区别3.2 语法格式 四.useTransition4.1 问题引入4.2 语法格式4.3 使用 isPending 展示加载状态4.4 注意事项…...

【数据中台】大数据管理平台建设方案(原件资料)

建设大数据管理中台&#xff0c;按照统一的数据规范和标准体系&#xff0c;构建统一数据采集&#xfe63;治理&#xfe63;共享标准、统一技术开发体系、统一接口 API &#xff0c;实现数据采集、平台治理&#xff0c;业务应用三层解耦&#xff0c;并按照统一标准格式提供高效的…...

UE5+OpenCV配置(Windows11系统)

一、概述 因为需要在UE5中使用OpenCV这些工具进行配置&#xff0c;所以在网络上参考借鉴一些资料进行配置。查询到不少的资料&#xff0c;最后将其配置成功。在这里顺便记录一下自己的配置成功的过程。 二、具体过程 &#xff08;一&#xff09;版本 使用Windows11系统、UE5.…...

自研Vue3开源Tree组件:节点拖拽bug修复

当dropType为after&#xff0c;且dropNode为父节点时&#xff0c;bug出现了&#xff1a; bug原因&#xff1a;插入扁平化列表的位置insertIndex计算的不对&#xff1a; 正确的逻辑&#xff0c;同inner要算上子孙节点所占的位置&#xff1a; bug修复&#xff01;...

SSM学习9:SpringBoot简介、创建项目、配置文件、多环节配置

简介 SpringBoot式用来简化Spring应用的初始搭建以及开发过程的一个框架 项目搭建 File -> New -> Project 选中pom.xml文件&#xff0c;设置为maven项目 项目启动成功 可以访问BasicController中的路径 配置文件 在resources目录下 application.properties 默…...

Java面试题---索引

什么是索引 索引是用来高效获取数据的存储结构如同字典的目录一样&#xff0c;数据库的索引通常使用btree来实现&#xff0c;索引树的节点和数据地址相关联&#xff0c;查询的时候在索引树种进行高效搜索&#xff0c;然后根据数据地址获取数据。索引提高了搜索的效率同时增加了…...

ollama本地部署大语言模型记录

目录 安装Ollama更改模型存放位置 拉取模型GemmaMistralQwen1.5(通义千问)codellama 部署Open webui测试性能知识广度问题1问题2 代码能力总结 最近突然对大语言模型感兴趣 同时在平时的一些线下断网的CTF比赛中&#xff0c;大语言模型也可以作为一个能对话交互的高级知识检索…...

【C++红黑树应用】模拟实现STL中的map与set

目录 &#x1f680; 前言一&#xff1a; &#x1f525; 红黑树的修改二&#xff1a; &#x1f525; 红黑树的迭代器 三&#xff1a; &#x1f525; perator() 与 operator--() 四&#xff1a; &#x1f525; 红黑树相关接口的改造✨ 4.1 Find 函数的改造✨ 4.2 Insert 函数的改…...

前端实习手计(5):班味十足?!

自我感觉没有班味&#xff01;&#xff01;&#xff01;每天还是快快乐乐上班哇&#xff0c;是愉快的一周~这周没有太多活咯&#xff0c;基本就是修修改改改代码学习。真的感觉自己写的代码就是乱七八糟&#xff0c;只要能跑起来有效果就行&#xff08;我不是合格的处女座哈哈哈…...

Duix AI 太上瘾,让我熬夜体验的AI女友

✨点击这里✨&#xff1a;&#x1f680;原文链接&#xff1a;&#xff08;更好排版、视频播放、社群交流、最新AI开源项目、AI工具分享都在这个公众号&#xff01;&#xff09; Duix AI 太上瘾&#xff0c;让我熬夜体验的AI女友 开启 Duix AI 女友的奇妙之旅_ Hi&#xff0c;这…...

php判断某个目录下是否存在文件

/*** 判断字符串是否以什么结尾* param String $haystack 字符串* param String $needle 结尾* return Boolean*/ function endWith($haystack, $needle) {$length strlen($needle);if ($length 0) {return true;}return (substr($haystack, -$length) $needle); } /***…...

重塑互联网生态:探索Web 3.0、大数据与隐私保护的新篇章

引言&#xff1a;互联网的新纪元 随着互联网技术的日新月异&#xff0c;我们正迈入一个全新的时代&#xff0c;其中Web 3.0、大数据以及隐私保护成为塑造未来互联网生态的三大核心力量。它们不仅改变了我们与互联网交互的方式&#xff0c;更深刻地影响着社会的方方面面。 Web…...

HR模块中PA信息类型的相关函数

目录 1、新增、删除&#xff0c;修改&#xff1a;HR_INFOTYPE_OPERATION新增&#xff1a;INS删除&#xff1a;DEL修改&#xff1a;MOD 2、读取PA信息类型&#xff1a;HR_READ_INFOTYPE3、入职&#xff0c;生成新工号用&#xff1a;HR_PAD_HIRE_EMPLOYEE4、加锁&#xff1a;BAPI…...

c# 日期类型变量默认值

DateTime类型是比较常用的变量类型&#xff0c;但是以前处理都比较业余&#xff0c;下面总结2中常用方式 这次把它总结下&#xff1a; DateTime t1 default(DateTime); DateTime t2 DateTime.MinValue; 这样t1&#xff0c;t2 的值都是 {0001/1/1 0:00:00} PS: 由于DateTi…...

设计模式实战:任务调度系统的设计与实现

问题描述 设计一个任务调度系统,支持任务的创建、调度、执行和状态管理。系统需要确保任务的执行过程可以被灵活调度,并且支持任务状态的跟踪和通知功能。 设计分析 命令模式 命令模式用于将请求封装成对象,从而使我们可以用不同的请求、队列或日志来参数化其他对象。任…...

代码中的特殊注释

代码中特殊注释——TODO、FIXME、XXX、HACK_fix me todo hack-CSDN博客 代码中特殊注释——TODO、FIXME、XXX、HACK TODO&#xff1a;英语翻译为待办事项&#xff0c;备忘录。如果代码中有该标识&#xff0c;说明在标识处有功能代码待编写&#xff0c;待实现的功能在说明中会…...

ubuntu20.04.6 安装Skywalking 10.0.1

1.前置准备 1.1. **jdk17&#xff08;Skywalking10 jdk22不兼容&#xff0c;用17版本即可&#xff09;**安装&#xff1a; https://blog.csdn.net/CsethCRM/article/details/140768670 1.2. elasticsearch安装&#xff1a; https://blog.csdn.net/CsethCRM/article/details…...