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

ELasticsearch:什么是语义搜索?

语义搜索定义

语义搜索是一种解释单词和短语含义的搜索引擎技术。 语义搜索的结果将返回与查询含义匹配的内容,而不是与查询中的单词字面匹配的内容。

语义搜索是一组搜索引擎功能,其中包括根据搜索者的意图及其搜索上下文理解单词。

此类搜索旨在通过更准确地结合上下文解释自然语言来提高搜索结果的质量。 语义搜索借助机器学习和人工智能等技术,通过将搜索意图与语义进行匹配来实现这一目标。

语义搜索如何工作?

语义搜索由向量搜索提供支持,这使得语义搜索能够根据上下文相关性和意图相关性来交付内容并对其进行排名。 向量搜索将可搜索信息的详细信息编码到相关术语或条目或向量的字段中,然后比较向量以确定哪些最相似。

支持向量搜索的语义搜索通过同时在查询管道的两端工作来生成结果:启动查询时,搜索引擎将查询转换为嵌入,嵌入是数据和相关上下文的数字表示。 它们存储在向量中。 然后,kNN 算法或 k 最近邻算法将现有文档(语义搜索涉及文本)的向量与查询向量进行匹配。 然后语义搜索生成结果并根据概念相关性对它们进行排名。

  1. 当发起查询时,搜索引擎会将查询转换为嵌入,即数据和相关上下文的数字表示。 它们存储在向量中。
  2. 然后,kNN 算法或 k 最近邻算法将现有文档(语义搜索涉及文本)的向量与查询向量进行匹配。
  3. 然后语义搜索生成结果并根据概念相关性对它们进行排名。

上下文

在语义搜索中,上下文可以指任何附加信息,例如搜索者的地理位置、查询中单词的文本上下文或搜索者搜索历史的上下文。

语义搜索使用上下文线索来确定包含数百万个示例的数据集中单词的含义。 语义搜索还可以识别在类似上下文中可以使用哪些其他单词。

例如,搜索 “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文件&#xff0c;然后页面预览下载这样的情况。之前导出word文档又不是我做的&#xff0c;所以为了不影响业务&#xff0c;只是将最后在输出流时转换成了PDF&#xff0c;当时本地调用没什么问题&#xff0c;一切正常&#xf…...

C\C++ 获取最值

C C 语言的不同类型的最值可以在 limits.h 头文件里找到定义 #include <limits.h>int main() {printf("%d", INT_MAX); // 整数最大值printf("%d", INT_MIN); // 整数最小值 } C C 有模板&#xff0c;可以通过替换下面的 int 和 double&#xff…...

机器学习之无监督学习:九大聚类算法

今天&#xff0c;和大家分享一下机器学习之无监督学习中的常见的聚类方法。 今天&#xff0c;和大家分享一下机器学习之无监督学习中的常见的聚类方法。 在无监督学习中&#xff0c;我们的数据并不带有任何标签&#xff0c;因此在无监督学习中要做的就是将这一系列无标签的数…...

Linux高级管理-搭建网站服务

在Ihternet 网络环境中&#xff0c;Web 服务无疑是最为流行的应用系统。有了Web站点&#xff0c;企业可以充分 展示自己的产品&#xff0c;宣传企业形象。Web站点还为企业提供了与客户交流、电子商务交易平台等丰富 的网络应用。部署与维护Web 服务是运维工程师必须掌握的一个技…...

Windows 系统,TortoiseSVN 无法修改 Log 信息解决方法

使用SVN提交版本信息时&#xff0c;注释内容写的不全。通过右键TortoiseSVN的Show log看到提交的的注释&#xff0c;右键看到Edit log message的选项&#xff0c;然而提交后却给出错误提示&#xff1a; Repository has not been enabled to accept revision propchanges; ask …...

编译 Android gradle-4.6-all.zip 报错问题记录

编译 Android gradle-4.6-all.zip 报错问题记录 方法一&#xff1a;替换资源&#xff1a;方法二&#xff1a;修改源方法三&#xff1a;修改版本 编译时候无法下载 gradle-4.6-all Downloading https://services.gradle.org/distributions/gradle-4.6-all.zip 方法一&#xf…...

Linux系统调试课:Valgrind 内存调试

文章目录 一、为什么要学会Valgrind二、什么是内存泄露三、Valgrind的移植四、Valgrind相关参数沉淀、分享、成长,让自己和他人都能有所收获!😄 📢Valgrind 是一个开源的内存调试和性能分析工具,用于帮助开发者找出程序中的内存错误,如内存泄漏、使用未初始化的内存、非…...

python主流开发工具排名,python开发工具有哪些

本篇文章给大家谈谈python的开发工具软件有哪些&#xff0c;以及python主流开发工具排名&#xff0c;希望对各位有所帮助&#xff0c;不要忘了收藏本站喔。 python中用到哪些软件 一、Python代码编辑器1、sublime Textsublime Text是一款非常流行的代码编辑器&#xff0c;支持P…...

Spring Boot Async:从入门到精通,原理详解与最佳实践

Spring Boot 的异步功能&#xff08;Async&#xff09;允许我们将某些任务异步执行&#xff0c;而不会阻塞主线程。这对于处理耗时的操作非常有用&#xff0c;如发送电子邮件、生成报表、调用外部 API 等。通过异步处理&#xff0c;我们可以释放主线程&#xff0c;让它继续处理…...

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的应用案例:从在线购物到金融投资

引言 随着互联网技术的不断发展&#xff0c;人们的金融需求也在不断增加。随之而来的是各种新型金融服务的涌现&#xff0c;让用户的金融体验更加便利快捷。其中&#xff0c;银行卡二要素API的应用&#xff0c;则为用户的金融体验和安全性提供了极大的保障。 银行卡二要素API…...

MySQL 忘记root密码后重置密码操作

在忘记 MySQL 密码的情况下&#xff0c;可以通过 --skip-grant-tables 关闭服务器的认证&#xff0c;然后重置 root 的密码&#xff0c;具体操作步骤如下。 步骤 1)&#xff1a;关闭正在运行的 MySQL 服务。打开 cmd 进入 MySQL 的 bin 目录。 步骤 2)&#xff1a;输入mysqld -…...

开源电子合同签署平台小程序源码/电子文件签字+在线合同签署系统源码/电子合同小程序源码

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

<6>-MySQL表的增删查改

目录 一&#xff0c;create&#xff08;创建表&#xff09; 二&#xff0c;retrieve&#xff08;查询表&#xff09; 1&#xff0c;select列 2&#xff0c;where条件 三&#xff0c;update&#xff08;更新表&#xff09; 四&#xff0c;delete&#xff08;删除表&#xf…...

树莓派超全系列教程文档--(62)使用rpicam-app通过网络流式传输视频

使用rpicam-app通过网络流式传输视频 使用 rpicam-app 通过网络流式传输视频UDPTCPRTSPlibavGStreamerRTPlibcamerasrc GStreamer 元素 文章来源&#xff1a; http://raspberry.dns8844.cn/documentation 原文网址 使用 rpicam-app 通过网络流式传输视频 本节介绍来自 rpica…...

微信小程序 - 手机震动

一、界面 <button type"primary" bindtap"shortVibrate">短震动</button> <button type"primary" bindtap"longVibrate">长震动</button> 二、js逻辑代码 注&#xff1a;文档 https://developers.weixin.qq…...

在Ubuntu中设置开机自动运行(sudo)指令的指南

在Ubuntu系统中&#xff0c;有时需要在系统启动时自动执行某些命令&#xff0c;特别是需要 sudo权限的指令。为了实现这一功能&#xff0c;可以使用多种方法&#xff0c;包括编写Systemd服务、配置 rc.local文件或使用 cron任务计划。本文将详细介绍这些方法&#xff0c;并提供…...

令牌桶 滑动窗口->限流 分布式信号量->限并发的原理 lua脚本分析介绍

文章目录 前言限流限制并发的实际理解限流令牌桶代码实现结果分析令牌桶lua的模拟实现原理总结&#xff1a; 滑动窗口代码实现结果分析lua脚本原理解析 限并发分布式信号量代码实现结果分析lua脚本实现原理 双注解去实现限流 并发结果分析&#xff1a; 实际业务去理解体会统一注…...

数据库分批入库

今天在工作中&#xff0c;遇到一个问题&#xff0c;就是分批查询的时候&#xff0c;由于批次过大导致出现了一些问题&#xff0c;一下是问题描述和解决方案&#xff1a; 示例&#xff1a; // 假设已有数据列表 dataList 和 PreparedStatement pstmt int batchSize 1000; // …...

自然语言处理——Transformer

自然语言处理——Transformer 自注意力机制多头注意力机制Transformer 虽然循环神经网络可以对具有序列特性的数据非常有效&#xff0c;它能挖掘数据中的时序信息以及语义信息&#xff0c;但是它有一个很大的缺陷——很难并行化。 我们可以考虑用CNN来替代RNN&#xff0c;但是…...

聊一聊接口测试的意义有哪些?

目录 一、隔离性 & 早期测试 二、保障系统集成质量 三、验证业务逻辑的核心层 四、提升测试效率与覆盖度 五、系统稳定性的守护者 六、驱动团队协作与契约管理 七、性能与扩展性的前置评估 八、持续交付的核心支撑 接口测试的意义可以从四个维度展开&#xff0c;首…...

AI病理诊断七剑下天山,医疗未来触手可及

一、病理诊断困局&#xff1a;刀尖上的医学艺术 1.1 金标准背后的隐痛 病理诊断被誉为"诊断的诊断"&#xff0c;医生需通过显微镜观察组织切片&#xff0c;在细胞迷宫中捕捉癌变信号。某省病理质控报告显示&#xff0c;基层医院误诊率达12%-15%&#xff0c;专家会诊…...

return this;返回的是谁

一个审批系统的示例来演示责任链模式的实现。假设公司需要处理不同金额的采购申请&#xff0c;不同级别的经理有不同的审批权限&#xff1a; // 抽象处理者&#xff1a;审批者 abstract class Approver {protected Approver successor; // 下一个处理者// 设置下一个处理者pub…...