Elasticsearch(15) multi_match的使用
elasticsearch version: 7.10.1
multi_match是Elasticsearch中的一种查询类型,允许在一个或多个字段上执行全文本搜索,并合并各个字段的结果得分。这种查询有助于实现跨多个字段的统一搜索体验。
语法
{"query": {"multi_match" : {"query": "搜索文本", // 要搜索的关键词或短语"fields": ["field1", "field2"], // 搜索涉及的字段列表"type": "best_fields", // (可选)匹配类型,默认是"best_fields",也可以是"most_fields"、"cross_fields"、"phrase"、"phrase_prefix"等"operator": "and", // (可选)查询词之间的关系,默认是"or",可以改为"and""analyzer": "standard", // (可选)使用的分析器"minimum_should_match": 1, // (可选)最少匹配的条件,默认是基于类型的不同有不同的计算规则"tie_breaker": 0.3, // (可选)交叉字段查询时,决定每个字段得分与整体得分之间关系的权重因子"boost": 2.0 // (可选)提升查询的权重,会影响相关度评分}}
}
query:要搜索的文本。
fields:一个字段名称列表,将在这些字段上执行全文搜索。
operator: and 搜索次需要全部匹配
type:定义匹配类型,不同类型的含义如下:
- best_fields:默认类型,选取匹配分数最高的那个字段的得分。
- most_fields:综合所有字段的得分。
- cross_fields:将所有字段当作一个大的字段来处理,进行跨字段的短语查询。
- phrase:强制执行短语匹配。
- phrase_prefix:类似于phrase,但是支持前缀匹配。
例题
索引创建
PUT /blog_posts
{"mappings": {"properties": {"title": {"type": "text"},"body": {"type": "text"},"tags": {"type": "keyword"}}}
}
文档插入
POST /blog_posts/_doc
{"title": "How to Use Elasticsearch for Full-text Search","body": "In this article, we explore the power of Elasticsearch as a distributed full-text search engine.","tags": ["Elasticsearch", "full-text search", "distributed systems"]
}POST /blog_posts/_doc
{"title": "Distributed Systems Design with Elasticsearch","body": "Learn about how Elasticsearch can be used in designing scalable and fault-tolerant distributed systems.","tags": ["Elasticsearch", "distributed systems", "design patterns"]
}POST /blog_posts/_doc
{"title": "Understanding Elasticsearch Aggregations","body": "Discover the power of Elasticsearch aggregations for data analysis and exploration.","tags": ["Elasticsearch", "aggregations", "data analytics"]
}POST /blog_posts/_doc
{"title": "Scaling Elasticsearch Clusters for High Performance","body": "Learn techniques for scaling Elasticsearch clusters to handle large volumes of data and high traffic loads.","tags": ["Elasticsearch", "cluster scaling", "performance optimization"]
}POST /blog_posts/_doc
{"title": "Introduction to Elasticsearch Relevance Scoring","body": "Explore how Elasticsearch calculates relevance scores for search results to improve user experience.","tags": ["Elasticsearch", "relevance scoring", "search algorithms"]
}POST /blog_posts/_doc
{"title": "Real-time Log Analytics with Elasticsearch and Logstash","body": "Configure Elasticsearch, Logstash, and Kibana (ELK Stack) for real-time log processing and visualization.","tags": ["Elasticsearch", "Logstash", "Kibana", "log analytics"]
}POST /blog_posts/_doc
{"title": "Securing Your Elasticsearch Cluster","body": "Implement security measures to protect your Elasticsearch cluster from unauthorized access and data breaches.","tags": ["Elasticsearch", "security", "access control"]
}POST /blog-posts/_doc/
{"title": "How to use Elasticsearch Multi-Match Queries","body": "In this article, we discuss various types of multi_match queries in Elasticsearch.","tags": ["elasticsearch", "full-text search", "queries"]
}POST /blog-posts/_doc/
{"title": "Exploring Phrase Matching in Elasticsearch","body": "Learn how phrase matching works in Elasticsearch and its application in multi_match queries.","tags": ["elasticsearch", "phrase matching"]
}
查询语句
GET /blog-posts/_search
{"query": {"multi_match" : {"query": "use Elasticsearch multi-match queries","fields": ["title^3", "body"],"type": "best_fields"}}
}
GET /blog-posts/_search
{"query": {"multi_match" : {"query": "Elasticsearch multi-match","fields": ["title", "body", "tags.keyword"],"type": "most_fields"}}
}
GET /blog-posts/_search
{"query": {"multi_match" : {"query": "\"use Elasticsearch\" multi match","fields": ["title", "body"],"type": "cross_fields"}}
}
GET /blog-posts/_search
{"query": {"multi_match" : {"query": "\"phrase matching\" in Elasticsearch","fields": ["title", "body"],"type": "phrase"}}
}
GET /blog-posts/_search
{"query": {"multi_match" : {"query": "phrase matc*","fields": ["title", "body"],"type": "phrase_prefix"}}
}
相关文章:
Elasticsearch(15) multi_match的使用
elasticsearch version: 7.10.1 multi_match是Elasticsearch中的一种查询类型,允许在一个或多个字段上执行全文本搜索,并合并各个字段的结果得分。这种查询有助于实现跨多个字段的统一搜索体验。 语法 {"query": {"multi_m…...
nodejs的线程模型和libuv库的基本使用
文章目录 nodejs中集成addon本地代码的回调问题单线程事件驱动模型libuvlibuv基本框架addon中使用libuv代码nodejs中集成addon本地代码的回调问题 在C++的代码中,回调函数是一个基本的代码调用方式。而在我自己的开发实践中,需要在addon这样一个nodejs的本地化模块中实现一个…...
Uni-app/Vue/Js本地模糊查询,匹配所有字段includes和some方法结合使用e
天梦星服务平台 (tmxkj.top)https://tmxkj.top/#/ 1.第一步 需要一个数组数据 {"week": "全部","hOutName": null,"weekendPrice": null,"channel": "门市价","hOutId": 98,"cTime": "…...
深度学习pytorch——激活函数损失函数(持续更新)
论生物神经元与神经网络中的神经元联系——为什么使用激活函数? 我们将生物体中的神经元与神经网络中的神经元共同分析。从下图可以看出神经网络中的神经元与生物体中的神经元有很多相似之处,由于只有刺激达到一定的程度人体才可以感受到刺激,…...
《苹果 iOS 应用开发与分发的关键问题解析》
一、背景 解决同事问的问题,来来回回被问好几次相同的问题,然后确认,我觉得不如写个文档 二、非研发人员安装iOS应用方式 TestFlightIPA 文件 对比 TestFlightIPA 文件安装方式TestFlight 是苹果提供的一个 beta 测试平台,开发者…...
爱上数据结构:顺序表和链表
一、线性表 线性表(linear list)是n个具有相同特性的数据元素的有限序列。 线性表是一种在实际中广泛使 用的数据结构,常见的线性表:顺序表、链表、栈、队列、字符串... 线性表在逻辑上是线性结构,也就说是连续的一条…...
python知识点总结(十)
python知识点总结十 1、装饰器的理解、并实现一个计时器记录执行性能,并且将执行结果写入日志文件中2、队列和栈的区别,并且用python实现3、设计实现遍历目录与子目录4、CPU处理进程最慢的情况通常发生在以下几种情况下:5、CPU处理线程最慢的…...
【Python】探索 Python 编程世界:常量、变量及数据类型解析
欢迎来CILMY23的博客 本篇主题为 探索 Python 编程世界:常量、变量及数据类型解析 个人主页:CILMY23-CSDN博客 Python系列专栏:http://t.csdnimg.cn/HqYo8 上一篇博客: http://t.csdnimg.cn/SEdbp C语言专栏: htt…...
vue页面实现左右div宽度,上下div高度分割线手动拖动高度或者宽度自动变化,两个div宽度或者高度拉伸调节,实现左右可拖动改变宽度的div内容显示区
实现左右或者上下div两部分拖动,宽度或者高度自动变化,实现流畅平滑的变化,还可以是实现拖动到一定宽度就不让拖动了,如果你不需要最小宽度,就直接去掉样式就行 这是页面。分左中右三部分,中间我是用来作为拖动的按钮…...
知攻善防应急靶场-Linux(1)
前言: 堕落了三个月,现在因为被找实习而困扰,着实自己能力不足,从今天开始 每天沉淀一点点 ,准备秋招 加油 注意: 本文章参考qax的网络安全应急响应和知攻善防实验室靶场,记录自己的学习过程&am…...
ffmpeg命令行
ffmpeg 如果要在linux gdb 调试,需要在configure 时候不优化 开启调试 ./configure --enable-debug --disable-optimizations make如何开启gdb 调试 gdb ffmpeg_gset args -i test.hevc -c:v copy -c:a copy output_265.mp4rh264 的流生成mp4 文件,不转…...
VMware虚拟机更换引导顺序
前言 我用wmware装了黑群晖测试,将img转成vmdisk的格式之后发现系统引导盘之后1G,有点太小了 我准备把wmware的黑群晖系统迁移到新添加的虚拟磁盘里 1.登录黑群晖的SSH 请先在黑群晖的控制面板中的终端机和SNMP里面启用SSH功能,才能使用ss…...
RAFT:让大型语言模型更擅长特定领域的 RAG 任务
RAFT(检索增强的微调)代表了一种全新的训练大语言模型(LLMs)以提升其在检索增强生成(RAG)任务上表现的方法。“检索增强的微调”技术融合了检索增强生成和微调的优点,目标是更好地适应各个特定领…...
Stable Diffusion 本地训练端口与云端训练端口冲突解决办法
方法之一,修改本地训练所用的端口 1 首先,进入脚本训练器的根目录 例如:C:\MarkDeng\lora-scripts-v1.7.3 找到gui.py 2 修改端口号 因为云端训练器也是占用28000和6006端口 那么本地改成27999和6007也是可以的 保存退出,运行启动…...
C++学习day1
思维导图 定义自己的命名空间,其中有string类型的变量,再定义两个函数,一个函数完成字符串的输入,一个函数完成求字符串长度,再定义一个全局函数完成对该字符串的反转 #include <iostream> using namespace std;…...
openGauss CM
CM 可获得性 本特性自openGauss 3.0.0版本开始引入。 特性简介 CM(Cluster Manager)是一款数据库管理软件,由cm_server和cm_agent组成。 cm_agent是部署在数据库每个主机上,用来启停和监控各个数据库实例进程的数据库管理组件…...
北斗短报文+4G应急广播系统:实时监控 自动预警 保护校园安全的新力量
安全无小事,生命重如山。学生是祖国的未来,校园安全是全社会安全工作的一个重要的组成部分。它直接关系到青少年学生能否安健康地成长,关系到千千万万个家庭的幸福安宁和社会稳定。 灾害事故和突发事件频频发生,给学生、教职员工…...
2024河北石家庄矿业矿山展览会|河北智慧矿山展会|河北矿博会
2024中国(石家庄)国际矿业博览会 时间:2024年7月4-6日 地点:石家庄国际会展中心.正定 随着全球经济的持续增长和矿产资源需求的不断攀升,矿业行业正迎来前所未有的发展机遇。作为矿业领域的盛会&…...
ruoyi使用笔记
1.限流处理 RateLimiter PostMapping("/createOrder") ApiOperation("创建充值订单") RateLimiter(key CacheConstants.REPEAT_SUBMIT_KEY,time 10,count 1,limitType LimitType.IP) public R createOrder(RequestBody Form form) {//业务处理return …...
论文《Exploring to Prompt for Vision-Language Models》阅读
论文《Exploring to Prompt for Vision-Language Models》阅读 论文概况论文动机(Intro)MethodologyPreliminaryCoOp[CLASS]位置Context 是否跨 class 共享表示和训练 ExperimentsOverall ComparisonDomain GeneralizationContext Length (M) 和 backbon…...
Double Q-learning实战:如何用Python解决过估计问题(附代码示例)
Double Q-learning实战:如何用Python解决过估计问题(附代码示例) 强化学习中的Q-learning算法因其简洁高效而广受欢迎,但在某些场景下会出现严重的过估计问题。本文将深入探讨这一现象的本质,并手把手教你用Python实现…...
【JavaEE】多线程 -- 初识线程
目录认识线程线程是什么为啥要有线程进程和线程的区别(重要)第一个多线程程序为什么先打印main再打印thread抛异常的小问题创建多线程的方式继承Thread, 重写run方法实现Runnable接口继承Thread, 使用匿名内部类实现Runnable接口, 使用匿名内部类lambda表达式(推荐写法)Thread类…...
CUA Computer SDK:虚拟机自动化的终极解决方案,让AI代理掌控桌面级交互
CUA Computer SDK:虚拟机自动化的终极解决方案,让AI代理掌控桌面级交互 【免费下载链接】cua Create and run high-performance macOS and Linux VMs on Apple Silicon, with built-in support for AI agents. 项目地址: https://gitcode.com/GitHub_T…...
如何突破Windows权限限制?NSudo全方位权限管理方案
如何突破Windows权限限制?NSudo全方位权限管理方案 【免费下载链接】NSudo [Deprecated, work in progress alternative: https://github.com/M2Team/NanaRun] Series of System Administration Tools 项目地址: https://gitcode.com/gh_mirrors/ns/NSudo 在…...
AI 模型推理引擎性能比较
AI模型推理引擎性能比较:解锁高效计算的秘密 在人工智能技术快速发展的今天,AI模型推理引擎的性能直接决定了实际应用的效率和成本。无论是云端服务还是边缘设备,选择一款高效的推理引擎可以大幅提升响应速度、降低资源消耗。本文将从计算速…...
python协同过滤就业 大学生就业求职网vue 可视化统计echart
目录python协同过滤在就业领域的应用大学生就业求职网的功能需求VueECharts实现可视化统计1. **多维数据看板**2. **实时交互分析**3. **移动端适配**技术栈整合建议项目技术支持源码获取详细视频演示 :文章底部获取博主联系方式!同行可合作python协同过…...
RT-Thread消息邮箱机制解析与应用实践
RT-Thread消息邮箱机制深度解析1. 消息邮箱概述1.1 线程通信基础机制在实时操作系统中,线程间通信(IPC)是系统设计的关键组成部分。RT-Thread提供了两种基础通信机制:消息邮箱和消息队列。消息邮箱以其轻量级和高效性著称,特别适合小数据量的…...
告别重复造轮子:用Matlab封装你的PyTorch模型,打造一个可复用的预测函数
工程化实践:将PyTorch模型封装为Matlab可复用预测模块 在工业仿真和科研计算领域,Matlab因其强大的矩阵运算能力和丰富的工具箱而广受欢迎。然而,当我们需要将训练好的PyTorch深度学习模型集成到现有Matlab工作流时,往往会遇到接…...
51单片机(九)—— 数码管动态扫描原理与实现
1. 数码管动态扫描原理揭秘 第一次接触多位数码管显示时,我盯着电路板百思不得其解:明明只有8个数据引脚,怎么能同时控制8位数码管显示不同内容?直到理解了动态扫描原理,才恍然大悟这背后的精妙设计。动态扫描本质上是…...
比迪丽LoRA模型Ubuntu部署教程:3步完成环境配置与启动
比迪丽LoRA模型Ubuntu部署教程:3步完成环境配置与启动 想在自己的Ubuntu服务器上体验比迪丽LoRA模型,生成风格独特的AI图像,但被复杂的部署步骤劝退?别担心,这篇教程就是为你准备的。我们绕开那些繁琐的源码编译和环境…...
