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 -…...

开源电子合同签署平台小程序源码/电子文件签字+在线合同签署系统源码/电子合同小程序源码
源码简介: 开源电子合同签署平台小程序源码,它是电子文件签字在线合同签署系统源码/电子合同小程序源码 目前商业端和开源端一致,免费开源状态! 聚合市场上各类电子合同解决方案商,你无需一个一个的对接电子合同厂商…...

Linux 文件类型,目录与路径,文件与目录管理
文件类型 后面的字符表示文件类型标志 普通文件:-(纯文本文件,二进制文件,数据格式文件) 如文本文件、图片、程序文件等。 目录文件:d(directory) 用来存放其他文件或子目录。 设备…...

MODBUS TCP转CANopen 技术赋能高效协同作业
在现代工业自动化领域,MODBUS TCP和CANopen两种通讯协议因其稳定性和高效性被广泛应用于各种设备和系统中。而随着科技的不断进步,这两种通讯协议也正在被逐步融合,形成了一种新型的通讯方式——开疆智能MODBUS TCP转CANopen网关KJ-TCPC-CANP…...

12.找到字符串中所有字母异位词
🧠 题目解析 题目描述: 给定两个字符串 s 和 p,找出 s 中所有 p 的字母异位词的起始索引。 返回的答案以数组形式表示。 字母异位词定义: 若两个字符串包含的字符种类和出现次数完全相同,顺序无所谓,则互为…...
OpenPrompt 和直接对提示词的嵌入向量进行训练有什么区别
OpenPrompt 和直接对提示词的嵌入向量进行训练有什么区别 直接训练提示词嵌入向量的核心区别 您提到的代码: prompt_embedding = initial_embedding.clone().requires_grad_(True) optimizer = torch.optim.Adam([prompt_embedding...

智能仓储的未来:自动化、AI与数据分析如何重塑物流中心
当仓库学会“思考”,物流的终极形态正在诞生 想象这样的场景: 凌晨3点,某物流中心灯火通明却空无一人。AGV机器人集群根据实时订单动态规划路径;AI视觉系统在0.1秒内扫描包裹信息;数字孪生平台正模拟次日峰值流量压力…...
AspectJ 在 Android 中的完整使用指南
一、环境配置(Gradle 7.0 适配) 1. 项目级 build.gradle // 注意:沪江插件已停更,推荐官方兼容方案 buildscript {dependencies {classpath org.aspectj:aspectjtools:1.9.9.1 // AspectJ 工具} } 2. 模块级 build.gradle plu…...
Angular微前端架构:Module Federation + ngx-build-plus (Webpack)
以下是一个完整的 Angular 微前端示例,其中使用的是 Module Federation 和 npx-build-plus 实现了主应用(Shell)与子应用(Remote)的集成。 🛠️ 项目结构 angular-mf/ ├── shell-app/ # 主应用&…...

用机器学习破解新能源领域的“弃风”难题
音乐发烧友深有体会,玩音乐的本质就是玩电网。火电声音偏暖,水电偏冷,风电偏空旷。至于太阳能发的电,则略显朦胧和单薄。 不知你是否有感觉,近两年家里的音响声音越来越冷,听起来越来越单薄? —…...

【从零学习JVM|第三篇】类的生命周期(高频面试题)
前言: 在Java编程中,类的生命周期是指类从被加载到内存中开始,到被卸载出内存为止的整个过程。了解类的生命周期对于理解Java程序的运行机制以及性能优化非常重要。本文会深入探寻类的生命周期,让读者对此有深刻印象。 目录 …...
JavaScript 数据类型详解
JavaScript 数据类型详解 JavaScript 数据类型分为 原始类型(Primitive) 和 对象类型(Object) 两大类,共 8 种(ES11): 一、原始类型(7种) 1. undefined 定…...