ELasticsearch:什么是语义搜索?
语义搜索定义
语义搜索是一种解释单词和短语含义的搜索引擎技术。 语义搜索的结果将返回与查询含义匹配的内容,而不是与查询中的单词字面匹配的内容。
语义搜索是一组搜索引擎功能,其中包括根据搜索者的意图及其搜索上下文理解单词。
此类搜索旨在通过更准确地结合上下文解释自然语言来提高搜索结果的质量。 语义搜索借助机器学习和人工智能等技术,通过将搜索意图与语义进行匹配来实现这一目标。
语义搜索如何工作?
语义搜索由向量搜索提供支持,这使得语义搜索能够根据上下文相关性和意图相关性来交付内容并对其进行排名。 向量搜索将可搜索信息的详细信息编码到相关术语或条目或向量的字段中,然后比较向量以确定哪些最相似。
支持向量搜索的语义搜索通过同时在查询管道的两端工作来生成结果:启动查询时,搜索引擎将查询转换为嵌入,嵌入是数据和相关上下文的数字表示。 它们存储在向量中。 然后,kNN 算法或 k 最近邻算法将现有文档(语义搜索涉及文本)的向量与查询向量进行匹配。 然后语义搜索生成结果并根据概念相关性对它们进行排名。
- 当发起查询时,搜索引擎会将查询转换为嵌入,即数据和相关上下文的数字表示。 它们存储在向量中。
- 然后,kNN 算法或 k 最近邻算法将现有文档(语义搜索涉及文本)的向量与查询向量进行匹配。
- 然后语义搜索生成结果并根据概念相关性对它们进行排名。
上下文
在语义搜索中,上下文可以指任何附加信息,例如搜索者的地理位置、查询中单词的文本上下文或搜索者搜索历史的上下文。
语义搜索使用上下文线索来确定包含数百万个示例的数据集中单词的含义。 语义搜索还可以识别在类似上下文中可以使用哪些其他单词。
例如,搜索 “football” 在美国意味着 “soccer”,而在英国和世界其他地区则意味着 “football”。 语义搜索将根据用户的地理位置来区分结果。
搜索者意图
语义搜索的作用是改善用户体验。 为了提供最相关的结果,它解释用户的意图以了解他们的需求。 他们想要信息吗? 他们是否试图购买? 根据查询及其上下文,语义搜索将按相关性顺序对结果进行排名。
还可以通过查询分类设置来修改或改进语义搜索,例如首先生成评分最高的产品,然后再生成评分最低的产品。
个性化用户的搜索体验

语义搜索与关键字搜索
语义搜索和关键字搜索之间的区别在于,关键字搜索返回单词与单词、单词与同义词或单词与相似单词匹配的结果。 语义搜索看起来与查询中单词的含义相匹配。 在某些情况下,语义搜索可能不会生成与直接单词匹配的结果,但它会匹配用户的意图。
关键字搜索引擎使用查询扩展或放松工具,例如同义词或单词省略。 他们还使用自然语言处理和理解工具,例如拼写错误容忍、标记化和规范化。 另一方面,语义搜索能够通过使用向量搜索返回与含义匹配的查询结果。
考虑一下 “chocolate milk”。 语义搜索引擎将区分 “chocolate milk” 和 “milk chocolate”。 尽管查询中的关键字相同,但它们的书写顺序会影响含义。 作为人类,我们理解的牛奶巧克力是指各种巧克力,而巧克力牛奶则是巧克力口味的牛奶。
为什么语义搜索很重要?
语义搜索很重要,因为它有利于更广泛的搜索范围。 由于它由向量搜索提供支持,语义搜索可实现更直观的搜索体验,其中查询的上下文和意图会产生结果。
由于语义搜索算法不断 “学习” 各种关键绩效指标 (KPI),例如转化率和跳出率,因此语义搜索有助于提高用户满意度。
语义搜索的示例
语义搜索根据用户的地理环境、用户过去的搜索历史和用户意图提供结果。
个性化使用搜索者之前的搜索和交互来确定响应相关性和排名。 语义搜索还可以根据其他用户与它提取的响应的交互方式对结果进行重新排序。 例如,当你在搜索引擎中输入 “餐馆” 时,它将产生你所在地区的结果。
通过更好地理解用户意图,语义搜索可以响应 “Creuset vs. Staub dutch ovens” 之类的查询,并提供优先考虑产品比较的内容,因为这是用户的意图。 语义搜索会将 “best Staub deals” 或 “Creuset discounts” 背后的意图识别为购买意图并提供相应的响应。
另一个例子是预测文本。 当你在搜索栏中输入查询时,它会使用语义搜索来完成你的查询,并根据上下文、常见搜索和过去的搜索历史记录建议相关搜索词。
语义搜索的好处
语义搜索通过改善搜索体验使公司及其客户受益。
更方便客户使用
客户可能不记得行话,或回想起特定的产品名称。 语义搜索使客户能够输入模糊的搜索查询并获得特定的结果。 客户还可以使用描述进行搜索以发现其名称。 例如,你可以通过搜索你知道的歌词并找到标题来发现一首歌。
由于语义搜索通过考虑意图和上下文来解释含义,因此客户端的体验感觉更像是人类交互。
概念比关键字更强大
通过匹配概念而不是关键字,语义搜索会产生更准确的结果。 通过维度嵌入,向量将单词表示为概念。 “Car” 不再仅与 “car” 或 “cars” 匹配,它还与 “driver”、“insurance”、“tiers”、“electric”、“hybrid” 等匹配,因为这些词是相连的到 “car” 的向量。
因此,基于向量搜索的语义搜索扩展了简单匹配由标记表示的关键字的概念。
更适合商业
通过了解用户意图,语义搜索可以提高销售额和客户满意度。 用户意图可以是信息性的、事务性的、导航性的或商业性的。 了解意图可以使搜索引擎更好地满足客户需求。 这改善了客户与品牌的关系,这对业务来说更好。
使用 Elasticsearch 进行语义搜索
Elasticsearch 平台配备了机器学习和人工智能解决方案,包括语义搜索模型:Elastic Learned Sparse EncodeR(或 ELSER)。 该 NLP 模型经过 Elastic 训练,可在易于部署的工具中实现语义搜索。
Elasticsearch 安全地存储你的数据,以实现快速搜索、微调相关性以及可高效扩展的强大分析。 Elasticsearch 是 Elastic Stack 的核心组件,Elastic Stack 是一组用于数据摄取、丰富、存储、分析和可视化的免费开放工具。
了解有关 Elasticsearch 的更多信息
语义搜索资源
- 语义搜索:将搜索体验带入人工智能时代
- 深入了解自然语言处理 (NLP) 模型和 Elastic 向量搜索的基础知识
- 向量搜索的优势 – 以及 IT 领导者需要它来改善搜索体验的 5 个原因
- 观看此视频以了解有关向量搜索及其应用的更多信息
- 了解如何使用 Elastic 部署 NLP
- 使用 Elastic 掌握 kNN 搜索
相关文章:
ELasticsearch:什么是语义搜索?
语义搜索定义 语义搜索是一种解释单词和短语含义的搜索引擎技术。 语义搜索的结果将返回与查询含义匹配的内容,而不是与查询中的单词字面匹配的内容。 语义搜索是一组搜索引擎功能,其中包括根据搜索者的意图及其搜索上下文理解单词。 此类搜索旨在通过…...
ooTD I 女儿是自己的,尽情打扮尽情可爱
分享女宝的时尚穿搭 奶乎乎的黄色也太好看了 超足充绒量+优质面料 柔软蓬松上身体验感超赞 怎么穿都好看系列 轻轻松松打造时尚造型!!...
第62天:django学习(十一)
cookie和session 发展史 一开始,只有一个页面,没有登录功能,大家看到东西都一样。 时代发展,出现了需要登录注册的网站,要有一门技术存储我们的登录信息,于是cookie诞生了。 cookie: - 存储形式:k:v键值对…...
Rust测试字符串的移动,Move
代码创建了一个结构体,结构体有test1 字符串,还有指向字符串的指针。一共创建了两个。 然后我们使用swap 函数 交换两个结构体内存的内容。 最后如上图。相同的地址,变成了另外结构体的内容。注意看指针部分,还是指向原来的地址…...
vue+electron问题汇总
1. Vue_Bug Failed to fetch extension, trying 4 more times 描述:项目启动时报错 解决:注释图片中内容 2. Module not found: Error: Can’t resolve ‘fs’ in 描述:项目启动报错 解决:vue.config.js中添加图中数据 3.导入…...
Linux中的网络时间服务器
本章主要介绍网络时间的服务器 使用chrony配置时间服务器配置chrony客户端服务器同步时间 1.1 时间同步的重要性 一些服务对时间要求非常严格,例如如图所示的由三台服务器搭建的ceph集群 这三台服务器的时间必须保持一致,如果不一致,就会显…...
fastadmin打印页面
如下图选中订单号进行打印 html中增加代码 <div id"toolbar" class"toolbar"><a href"javascript:;" class"btn btn-primary btn-refresh" title"{:__(Refresh)}" ><i class"fa fa-refresh">&l…...
Java 将word转为PDF的三种方式和处理在服务器上下载后乱码的格式
我这边是因为业务需要将之前导出的word文档转换为PDF文件,然后页面预览下载这样的情况。之前导出word文档又不是我做的,所以为了不影响业务,只是将最后在输出流时转换成了PDF,当时本地调用没什么问题,一切正常…...
C\C++ 获取最值
C C 语言的不同类型的最值可以在 limits.h 头文件里找到定义 #include <limits.h>int main() {printf("%d", INT_MAX); // 整数最大值printf("%d", INT_MIN); // 整数最小值 } C C 有模板,可以通过替换下面的 int 和 doubleÿ…...
机器学习之无监督学习:九大聚类算法
今天,和大家分享一下机器学习之无监督学习中的常见的聚类方法。 今天,和大家分享一下机器学习之无监督学习中的常见的聚类方法。 在无监督学习中,我们的数据并不带有任何标签,因此在无监督学习中要做的就是将这一系列无标签的数…...
Linux高级管理-搭建网站服务
在Ihternet 网络环境中,Web 服务无疑是最为流行的应用系统。有了Web站点,企业可以充分 展示自己的产品,宣传企业形象。Web站点还为企业提供了与客户交流、电子商务交易平台等丰富 的网络应用。部署与维护Web 服务是运维工程师必须掌握的一个技…...
Windows 系统,TortoiseSVN 无法修改 Log 信息解决方法
使用SVN提交版本信息时,注释内容写的不全。通过右键TortoiseSVN的Show log看到提交的的注释,右键看到Edit log message的选项,然而提交后却给出错误提示: Repository has not been enabled to accept revision propchanges; ask …...
编译 Android gradle-4.6-all.zip 报错问题记录
编译 Android gradle-4.6-all.zip 报错问题记录 方法一:替换资源:方法二:修改源方法三:修改版本 编译时候无法下载 gradle-4.6-all Downloading https://services.gradle.org/distributions/gradle-4.6-all.zip 方法一…...
Linux系统调试课:Valgrind 内存调试
文章目录 一、为什么要学会Valgrind二、什么是内存泄露三、Valgrind的移植四、Valgrind相关参数沉淀、分享、成长,让自己和他人都能有所收获!😄 📢Valgrind 是一个开源的内存调试和性能分析工具,用于帮助开发者找出程序中的内存错误,如内存泄漏、使用未初始化的内存、非…...
python主流开发工具排名,python开发工具有哪些
本篇文章给大家谈谈python的开发工具软件有哪些,以及python主流开发工具排名,希望对各位有所帮助,不要忘了收藏本站喔。 python中用到哪些软件 一、Python代码编辑器1、sublime Textsublime Text是一款非常流行的代码编辑器,支持P…...
Spring Boot Async:从入门到精通,原理详解与最佳实践
Spring Boot 的异步功能(Async)允许我们将某些任务异步执行,而不会阻塞主线程。这对于处理耗时的操作非常有用,如发送电子邮件、生成报表、调用外部 API 等。通过异步处理,我们可以释放主线程,让它继续处理…...
oracle 19c创建db_link名称带.com域名问题处理
文章目录 一、修改PDB的global_name二、重启数据库实例三、修改domain后重试 一、修改PDB的global_name SYSorcl1>sho pdbsCON_ID CON_NAME OPEN MODE RESTRICTED ---------- ------------------------------ ---------- ----------2 PDB$SEED …...
银行卡二要素API的应用案例:从在线购物到金融投资
引言 随着互联网技术的不断发展,人们的金融需求也在不断增加。随之而来的是各种新型金融服务的涌现,让用户的金融体验更加便利快捷。其中,银行卡二要素API的应用,则为用户的金融体验和安全性提供了极大的保障。 银行卡二要素API…...
MySQL 忘记root密码后重置密码操作
在忘记 MySQL 密码的情况下,可以通过 --skip-grant-tables 关闭服务器的认证,然后重置 root 的密码,具体操作步骤如下。 步骤 1):关闭正在运行的 MySQL 服务。打开 cmd 进入 MySQL 的 bin 目录。 步骤 2):输入mysqld -…...
开源电子合同签署平台小程序源码/电子文件签字+在线合同签署系统源码/电子合同小程序源码
源码简介: 开源电子合同签署平台小程序源码,它是电子文件签字在线合同签署系统源码/电子合同小程序源码 目前商业端和开源端一致,免费开源状态! 聚合市场上各类电子合同解决方案商,你无需一个一个的对接电子合同厂商…...
零门槛NAS搭建:WinNAS如何让普通电脑秒变私有云?
一、核心优势:专为Windows用户设计的极简NAS WinNAS由深圳耘想存储科技开发,是一款收费低廉但功能全面的Windows NAS工具,主打“无学习成本部署” 。与其他NAS软件相比,其优势在于: 无需硬件改造:将任意W…...
Spring Boot 实现流式响应(兼容 2.7.x)
在实际开发中,我们可能会遇到一些流式数据处理的场景,比如接收来自上游接口的 Server-Sent Events(SSE) 或 流式 JSON 内容,并将其原样中转给前端页面或客户端。这种情况下,传统的 RestTemplate 缓存机制会…...
MySQL 隔离级别:脏读、幻读及不可重复读的原理与示例
一、MySQL 隔离级别 MySQL 提供了四种隔离级别,用于控制事务之间的并发访问以及数据的可见性,不同隔离级别对脏读、幻读、不可重复读这几种并发数据问题有着不同的处理方式,具体如下: 隔离级别脏读不可重复读幻读性能特点及锁机制读未提交(READ UNCOMMITTED)允许出现允许…...
uni-app学习笔记二十二---使用vite.config.js全局导入常用依赖
在前面的练习中,每个页面需要使用ref,onShow等生命周期钩子函数时都需要像下面这样导入 import {onMounted, ref} from "vue" 如果不想每个页面都导入,需要使用node.js命令npm安装unplugin-auto-import npm install unplugin-au…...
从深圳崛起的“机器之眼”:赴港乐动机器人的万亿赛道赶考路
进入2025年以来,尽管围绕人形机器人、具身智能等机器人赛道的质疑声不断,但全球市场热度依然高涨,入局者持续增加。 以国内市场为例,天眼查专业版数据显示,截至5月底,我国现存在业、存续状态的机器人相关企…...
Leetcode 3577. Count the Number of Computer Unlocking Permutations
Leetcode 3577. Count the Number of Computer Unlocking Permutations 1. 解题思路2. 代码实现 题目链接:3577. Count the Number of Computer Unlocking Permutations 1. 解题思路 这一题其实就是一个脑筋急转弯,要想要能够将所有的电脑解锁&#x…...
系统设计 --- MongoDB亿级数据查询优化策略
系统设计 --- MongoDB亿级数据查询分表策略 背景Solution --- 分表 背景 使用audit log实现Audi Trail功能 Audit Trail范围: 六个月数据量: 每秒5-7条audi log,共计7千万 – 1亿条数据需要实现全文检索按照时间倒序因为license问题,不能使用ELK只能使用…...
全面解析各类VPN技术:GRE、IPsec、L2TP、SSL与MPLS VPN对比
目录 引言 VPN技术概述 GRE VPN 3.1 GRE封装结构 3.2 GRE的应用场景 GRE over IPsec 4.1 GRE over IPsec封装结构 4.2 为什么使用GRE over IPsec? IPsec VPN 5.1 IPsec传输模式(Transport Mode) 5.2 IPsec隧道模式(Tunne…...
【碎碎念】宝可梦 Mesh GO : 基于MESH网络的口袋妖怪 宝可梦GO游戏自组网系统
目录 游戏说明《宝可梦 Mesh GO》 —— 局域宝可梦探索Pokmon GO 类游戏核心理念应用场景Mesh 特性 宝可梦玩法融合设计游戏构想要素1. 地图探索(基于物理空间 广播范围)2. 野生宝可梦生成与广播3. 对战系统4. 道具与通信5. 延伸玩法 安全性设计 技术选…...
基于SpringBoot在线拍卖系统的设计和实现
摘 要 随着社会的发展,社会的各行各业都在利用信息化时代的优势。计算机的优势和普及使得各种信息系统的开发成为必需。 在线拍卖系统,主要的模块包括管理员;首页、个人中心、用户管理、商品类型管理、拍卖商品管理、历史竞拍管理、竞拍订单…...
