一文详解 | 开放搜索兼容Elasticsearch做召回引擎
简介:开放搜索发布开源兼容版,支持阿里云Elasticsearch做搜索召回引擎,本文详细介绍阿里云ES用户如何通过接入开放搜索兼容版丰富行业分词库,提升查询语义理解能力,无需开发、算法投入,即可获得淘系同款搜索效果。
开放搜索开源兼容版简介
很多客户在搭建搜索业务时更熟悉开源技术栈,会选择Elasticsearch/Solr等开源引擎负责搜索的召回环节,然而在召回引擎以外训练NLP、排序等算法能力,不仅耗时耗力,而且大部分处于高投入低回报的状态。
开放搜索开源兼容版的Elasticsearch引擎则是基于阿里巴巴在搜索领域的积累,开放搜索的Elasticsearch引擎实例作为一个阿里云Elasticsearch的插件,运行在用户的阿里云Elasticsearch集群中,提供阿里自研行业分词能力、Query分析理解能力,从而减少了用户对算法模块的投入,可以将更多精力投入到业务转化、产品功能等需求上。
业务流程图:
开放搜索兼容版优势
- 基于阿里巴巴多年词库积累及达摩院NLP技术,丰富Elasticsearch开源引擎分词库,提升搜索效果;
在通用分词基础上还增加行业分词能力,可覆盖电商、IT内容、教育、游戏、互娱等行业。
- 赋予Elasticsearch引擎Query理解能力,精准定位用户搜索意图;
通过对Query进行一系列智能语义分析(拼写纠错、同义词改写、词权重、停用词、实体识别)理解用户搜索意图,改写用户搜索Query,使召回结果更符合需求;
用户可根据自身业务进行调整和优化,高效响应搜索需求,提升搜索效果和用户体验;
开源兼容版ES引擎实例创建及配置
一、创建Elasticsearch引擎实例
1.登录开放搜索控制台,并进入实例管理-Elasticsearch引擎页面,点击创建应用:
2.页面会跳转至Elasticsearch搜索增强版售卖页,选择创建应用需要的商量类型、地域,填写好应用名称,选择资源组,最后点击立即购买即可:
3.创建成功后,即可在实例管理-Elasticsearch引擎页面查看新创建的应用实例:
二、配置Elasticsearch引擎实例
配置应用包含关联阿里云Elasticsearch实例、安装插件、配置完成三步:
- 实例管理-Elasticsearch引擎页面,找到待配置状态的实例,点击配置,进入关联阿里云Elasticsearch应用页面:
- 安装插件:
- 点击“确定”,则开始安装自定义插件(会触发Elasticsearch集群重启):
- 配置成功,等待插件安装:
三、Elasticsearch引擎实例搜索测试
- 在阿里云Elasticsearch控制台实例详情页中确认开放搜索的“Elasticsearch搜索增强版自定义插件”是否已经安装:
- 登录Elasticsearch可视化控制台通过Dev Tools工具测试已安装的插件:
了解更多详细配置内容,查看产品文档:开源兼容版实例 - 智能开放搜索 OpenSearch - 阿里云
客户案例
某新零售客户,打造1公里社区网店服务,为用户提供吃、喝、玩、乐一体化生活服务。
客户搜索业务痛点
- 自建搜索效果差,搜不准、搜不到直接影响用户体验;
- 缺乏行业分词库,自研难度大,开发周期长,难以响应业务需求;
- 成熟的搜索引擎涉及离线模块、在线模块、查询理解服务、算法平台等系统组成,所需大量开发、算法调优以及持续的复杂运维工作,自建成本高;
开源兼容版解决方案
- 调用开放搜索电商行业分词库
集成淘宝搜索同款电商分词器,训练语料来自淘宝搜索多年积累的百万级有标注的电商行业数据,可准确识别商品品牌、品类、产品特性等电商属性query;
- 调用电商查询语义理解功能
- 电商拼写纠错
用户输入的query并不总是正确的,错误的输入可能导致查询结果不符合预期或者是无结果,因此需要对用户的输入进行拼写检查。OpenSearch的查询分析中提供的拼写检查功能,对查询词中的错误进行纠正,给出正确的查询词。并根据纠错的可信度高低,决定当前查询是否用纠错后的词进行查询。
- 电商同义词
同义词功能主要是对查询词进行同义扩展,扩大召回和查询词同义的文档。
- 电商实体识别
全称命名实体识别(Named Entity Recognition,简称NER),指对查询词中的具有特定意义的语义实体进行识别。查询分析根据识别的结果,依据实体类型的权重对查询词进行改写,使得召回的文档符合查询的意图。
效果反馈
无需额外投入人力资源,在不改变现有ES使用习惯情况下,从了解到测试到接入上线短短15天就获得高质量搜索效果,企业有更多资源精力投入到产品功能和业务提升中去。
- 商品搜索无结果率30%降至5%以下,指标还在持续优化中;
- 搜索引导的业务转化率增长7%;
- 商家店铺搜索CTR提升5%,将直接影响拉动商家入住和广告营收;
本文为阿里云原创内容,未经允许不得转载。
一文详解 | 开放搜索兼容Elasticsearch做召回引擎的更多相关文章
- 一文详解Hexo+Github小白建站
作者:玩世不恭的Coder时间:2020-03-08说明:本文为原创文章,未经允许不可转载,转载前请联系作者 一文详解Hexo+Github小白建站 前言 GitHub是一个面向开源及私有软件项目的托 ...
- 一文详解 Linux 系统常用监控工一文详解 Linux 系统常用监控工具(top,htop,iotop,iftop)具(top,htop,iotop,iftop)
一文详解 Linux 系统常用监控工具(top,htop,iotop,iftop) 概 述 本文主要记录一下 Linux 系统上一些常用的系统监控工具,非常好用.正所谓磨刀不误砍柴工,花点时间 ...
- Lucene系列六:Lucene搜索详解(Lucene搜索流程详解、搜索核心API详解、基本查询详解、QueryParser详解)
一.搜索流程详解 1. 先看一下Lucene的架构图 由图可知搜索的过程如下: 用户输入搜索的关键字.对关键字进行分词.根据分词结果去索引库里面找到对应的文章id.根据文章id找到对应的文章 2. L ...
- 一文详解 OpenGL ES 3.x 渲染管线
OpenGL ES 构建的三维空间,其中的三维实体由许多的三角形拼接构成.如下图左侧所示的三维实体圆锥,其由许多三角形按照一定规律拼接构成.而组成圆锥的每一个三角形,其任意一个顶点由三维空间中 x.y ...
- 一文详解 WebSocket 网络协议
WebSocket 协议运行在TCP协议之上,与Http协议同属于应用层网络数据传输协议.WebSocket相比于Http协议最大的特点是:允许服务端主动向客户端推送数据(从而解决Http 1.1协议 ...
- 1.3w字,一文详解死锁!
死锁(Dead Lock)指的是两个或两个以上的运算单元(进程.线程或协程),都在等待对方停止执行,以取得系统资源,但是没有一方提前退出,就称为死锁. 1.死锁演示 死锁的形成分为两个方面,一个是使用 ...
- 一文详解Redis键过期策略
摘要:Redis采用的过期策略:惰性删除+定期删除. 本文分享自华为云社区<Redis键过期策略详解>,作者:JavaEdge. 1 设置带过期时间的 key # 时间复杂度:O(1),最 ...
- 一文详解 Linux Crontab 调度任务
最近接到这样一个任务: 定期(每天.每月)向"特定服务器"传输"软件服务"的运营数据,因此这里涉及到一个定时任务,计划使用Python语言添加Crontab依赖 ...
- 一文详解如何在基于webpack5的react项目中使用svg
本文主要讨论基于webpack5+TypeScript的React项目(cra.craco底层本质都是使用webpack,所以同理)在2023年的今天是如何在项目中使用svg资源的. 首先,假定您已经 ...
- elasticsearch系列四:搜索详解(搜索API、Query DSL)
一.搜索API 1. 搜索API 端点地址 从索引tweet里面搜索字段user为kimchy的记录 GET /twitter/_search?q=user:kimchy 从索引tweet,user里 ...
随机推荐
- Linux Char-Driver (字符驱动 摘要)(一)
PS:要转载请注明出处,本人版权所有. PS: 这个只是基于<我自己>的理解, 如果和你的原则及想法相冲突,请谅解,勿喷. 前置说明 本文作为本人csdn blog的主站的备份.(Bl ...
- 《世嘉新人培训教材—游戏开发》2DGraphics1项目cmake构建
<世嘉新人培训教材-游戏开发>作为经典的游戏开发教程,提供了相关样例代码供我们进行开发使用.但是该样例是基于VS进行编写构建的,而本人日常喜欢CLion进行C/C++开发,于是准备使用cm ...
- 面试官:volatile如何保证可见性的,具体如何实现?
写在开头 在之前的几篇博文中,我们都提到了 volatile 关键字,这个单词中文释义为:不稳定的,易挥发的,在Java中代表变量修饰符,用来修饰会被不同线程访问和修改的变量,对于方法,代码块,方法参 ...
- 记录-html-docs-js避坑指南
这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 前言 我们公司目前在做基于tiptap的在线协同文档,最近需要做导出 pdf.word 需求. 导出 word 文档使用的是html-do ...
- #模拟#洛谷 2327 [SCOI2005]扫雷
题目 分析 考虑最多只有两种情况,因为确定一个位置其它位置随即也能确定, 那么指定第一个位置有没有雷然后判断一下后面推出的雷数是否为0或1,不是显然不行 代码 #include <cstdio& ...
- #高精度,模拟,vector#C 前缀
From 2020牛客NOIP赛前集训营-提高组(第二场) 传送门 分析 像我这么菜就只会模拟呀(考场CE全部爆零QWQ) 题意就是不断跳到下一个字母问总共跳的长度有多长, 首先用一个变量存下初始位置 ...
- OHOS IDE和SDK的安装方法
参照OpenHarmony应用开发环境安装流程,下载安装OHOS的IDE,过程中需要全程联网. IDE,安装至D:\Tools\Huawei\DevEcoStudio. IDE安装成功之后,按照提示下 ...
- 学习如何使用 Python 连接 MongoDB: PyMongo 安装和基础操作教程
Python 可以用于数据库应用程序.最流行的 NoSQL 数据库之一是 MongoDB MongoDB MongoDB 将数据存储在类似 JSON 的文档中,使数据库非常灵活和可扩展. 您可以在 M ...
- C++ 开发者必读经典书籍推荐
如果你正在学习C++,那么一本好的教材或参考书可以事半功倍.以下是几本我个人推荐的C++书籍或视频 C++基础 看书 C++ Primer C++程序设计语言 Effective C++ More E ...
- 你知道什么叫做API、SDK吗?
链接:https://www.zhihu.com/question/21691705/answer/770586138 API.SDK是什么......... 讲个小故事: 研发人员A开发了软件A,研 ...