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 -…...
开源电子合同签署平台小程序源码/电子文件签字+在线合同签署系统源码/电子合同小程序源码
源码简介: 开源电子合同签署平台小程序源码,它是电子文件签字在线合同签署系统源码/电子合同小程序源码 目前商业端和开源端一致,免费开源状态! 聚合市场上各类电子合同解决方案商,你无需一个一个的对接电子合同厂商…...
uniapp 对接腾讯云IM群组成员管理(增删改查)
UniApp 实战:腾讯云IM群组成员管理(增删改查) 一、前言 在社交类App开发中,群组成员管理是核心功能之一。本文将基于UniApp框架,结合腾讯云IM SDK,详细讲解如何实现群组成员的增删改查全流程。 权限校验…...
QMC5883L的驱动
简介 本篇文章的代码已经上传到了github上面,开源代码 作为一个电子罗盘模块,我们可以通过I2C从中获取偏航角yaw,相对于六轴陀螺仪的yaw,qmc5883l几乎不会零飘并且成本较低。 参考资料 QMC5883L磁场传感器驱动 QMC5883L磁力计…...
React19源码系列之 事件插件系统
事件类别 事件类型 定义 文档 Event Event 接口表示在 EventTarget 上出现的事件。 Event - Web API | MDN UIEvent UIEvent 接口表示简单的用户界面事件。 UIEvent - Web API | MDN KeyboardEvent KeyboardEvent 对象描述了用户与键盘的交互。 KeyboardEvent - Web…...
MySQL中【正则表达式】用法
MySQL 中正则表达式通过 REGEXP 或 RLIKE 操作符实现(两者等价),用于在 WHERE 子句中进行复杂的字符串模式匹配。以下是核心用法和示例: 一、基础语法 SELECT column_name FROM table_name WHERE column_name REGEXP pattern; …...
select、poll、epoll 与 Reactor 模式
在高并发网络编程领域,高效处理大量连接和 I/O 事件是系统性能的关键。select、poll、epoll 作为 I/O 多路复用技术的代表,以及基于它们实现的 Reactor 模式,为开发者提供了强大的工具。本文将深入探讨这些技术的底层原理、优缺点。 一、I…...
全志A40i android7.1 调试信息打印串口由uart0改为uart3
一,概述 1. 目的 将调试信息打印串口由uart0改为uart3。 2. 版本信息 Uboot版本:2014.07; Kernel版本:Linux-3.10; 二,Uboot 1. sys_config.fex改动 使能uart3(TX:PH00 RX:PH01),并让boo…...
rnn判断string中第一次出现a的下标
# coding:utf8 import torch import torch.nn as nn import numpy as np import random import json""" 基于pytorch的网络编写 实现一个RNN网络完成多分类任务 判断字符 a 第一次出现在字符串中的位置 """class TorchModel(nn.Module):def __in…...
九天毕昇深度学习平台 | 如何安装库?
pip install 库名 -i https://pypi.tuna.tsinghua.edu.cn/simple --user 举个例子: 报错 ModuleNotFoundError: No module named torch 那么我需要安装 torch pip install torch -i https://pypi.tuna.tsinghua.edu.cn/simple --user pip install 库名&#x…...
ubuntu22.04有线网络无法连接,图标也没了
今天突然无法有线网络无法连接任何设备,并且图标都没了 错误案例 往上一顿搜索,试了很多博客都不行,比如 Ubuntu22.04右上角网络图标消失 最后解决的办法 下载网卡驱动,重新安装 操作步骤 查看自己网卡的型号 lspci | gre…...
一些实用的chrome扩展0x01
简介 浏览器扩展程序有助于自动化任务、查找隐藏的漏洞、隐藏自身痕迹。以下列出了一些必备扩展程序,无论是测试应用程序、搜寻漏洞还是收集情报,它们都能提升工作流程。 FoxyProxy 代理管理工具,此扩展简化了使用代理(如 Burp…...
