开放搜索查询分析服务架构解读
简介:搜索行为在后端都会有大量的数据计算和处理才会召回符合用户需求的搜索结果,本次分享结合自建搜索业务中查询分析服务常见的问题及难点,介绍阿里云开放搜索查询分析具备的能力及解决方案,并深度解读阿里巴巴查询分析服务架构和兼容Elasticsearch的架构是如何实现的
特邀嘉宾:
项招贵(项公)--阿里巴巴高级技术专家
视频地址:https://yqh.aliyun.com/live/opensearch
查询分析介绍
查询分析在搜索中的作用
在搜索请求的处理过程中可以在工程实现上分为两个阶段,召回和排序。在召回阶段需要尽可能的把用户想要的文档在引擎中找到,在排序阶段需要将最满足需求的文档排在最前面去返回给用户。
通过查询分析可以快速进行处理和分析,比如,往往在实际的生产环境中,用户往往会有一些错误的输入,需要进行query纠错。 其次我们需要对query分词并且识别其中不同词的重要程度,这有助于我们在召回和排序中去使用。 同时由于实际的环境中存在一词多意,所以要进行同义词的扩展。 其次需要对用户的query进行改写去帮助引擎更高效的去执行召回。在query处理的阶段,会输出一些信息去以帮助我们在排序时候跟文档去算一些文档的相关性、类目相关性、以及通过一些将文本进行向量化去算它的语义相关性等。
查询分析链路
总的来说,查询分析的作用就是对用户输入的query进行分析和改写,去提升我们系统的召回的准确率和排序的相关性。 下面通过简单的例子介绍开放搜索的查询分析的功能。
自建搜索服务面临的问题
- 需要行业领域知识不断积累;
- 缺少大量行业样本数据,自研难度大;
- 算法调优、工程开发、日常运维需要持续的人力投入;
开放搜索查询分析特点
- 面向行业提供完整的查询分析解决方案
针对特定领域提供算法功能,以及对某些特定的算法功能进行优化。例如,电商行业,开放搜索提供了实体识别。教育行业,往往不仅是文本,也有可能是副文本或图片,所以对query进行了一个文本向量化的功能。有些功能在不同的行业里面我们也会针对性的去做优化,像拼写纠错或同义词的挖掘等等。
- 查询分析每一个功能均可干预
干预是实时生效的, 包含实体识别、拼写纠错、停用词、词权重,同义词,类目预测等。
- 轻量化的去定制服务
根据客户不同的业务场景去配置他的查询分析的能力,开放搜索提供这些能力功能的全集,用户可以根据实际需求选择其中一部分能力在实际生产环境中使用。 其次支持用户使用多种不同类型的查询分析,或者说是不同的查询分析的配置。
- 免运维
免除用户日常的运维的持续的投入。
查询分析服务架构
算法服务中心
- 算法功能的发布,迭代;
- 用户模型的增删改查;
- 算法模型的训练;
- 算法模型的回流;
干预功能
- 用户干预数据的增删改查;
- 实时同步干预数据到查询分析服务中;
查询分析和类目预测服务
- 加载词典、模型、数据、配置;
- 不同行业通过不同的服务链配置来实现;
- 加载用户干预数据;
查询过程
- 根据用户配置的功能执行对应的查询分析链;
- 改写的query发给引擎执行查询;
DIIRuntime框架
- 支持多种不同类型的索引,满足算法对各种不同类型数据的高效访问;
- 索引构建、分发、加载、查询统一,降低开发和运维成本;
- 链式服务框架,灵活组链,支持不同场景的功能;
- 算法开发只需要关注算法功能本身逻辑的实现,简单快捷;
Elasticsearch兼容架构
开放搜索Elasticsearch引擎查询分析功能
- 基本对齐开放搜索的查询分析能力;
- 具备行业分词能力
- 可干预
- 支持扩展分词
- 具备行业查询分析能力
- 可配置
- 可干预
实现架构
1.创建实例
- 创建开放搜索实例,关联Aliyun Elasticsearch的实例
- 安装插件
2.配置查询分析
- Mapping中设置使用响应的分析器
- 插件功能
- 提供通用、行业的分词能力
- 访问查询分析服务,获取query改写结果
- 改写Elasticsearch的查询query
>>如果有搜索效果深度优化需求,可以填写专家咨询问卷,参与试用即可免费获得开放搜索通用分词能力。问卷地址:https://c.tb.cn/F3.05Srxl
如果你想与更多开发者们进行交流、了解最前沿的搜索与推荐技术,可以钉钉扫码加入社群
原文链接:https://developer.aliyun.com/article/793236?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
开放搜索查询分析服务架构解读相关推荐
- ElasticSearch 大数据搜索查询分析全指南
专栏亮点 本专栏采用最新的 ElasticSearch7.x 版本 同市面上大部分的 ElasticSearch6.x 教程相比较,7 版本更新改动很大,比如新增 KQL(Kibana Query L ...
- 算法专家解读 | 开放搜索教育搜题能力和实践
简介:达摩院算法专家--徐光伟(昆卡)聚焦在线教育行业的拍照搜题场景,介绍如何应用开放搜索来构建更高搜索性能及搜题准确率的搜题系统,从而助力在线教育行业客户掌握更高层次用户体验的获客工具. 讲师:徐光 ...
- 自然语言处理在开放搜索中的应用
简介:构建搜索引擎的时候,都会遇到很多效果优化的问题,其中很多都和自然语言处理相关.本文通过结合开放搜索中NLP技术要点进行解读和分析. 特邀嘉宾:谢朋峻--阿里云智能高级算法专家 视频地址:http ...
- T系统和应用集成-从SOA架构思想到服务架构规划设计
T系统和应用集成-从SOA架构思想到服务架构规划设计 原创 人月聊IT 2020-09-23 13:48:20 作者:人月神话,新浪博客同名 简介:多年SOA规划建设,私有云PaaS平台架构设计经验, ...
- 【华为云技术分享】上亿条数据,如何查询分析简单又高效?
正值618大促,小张遇到了一个棘手的问题,需要在一周内将公司近1年电商部门的营收和线下门店经营数据进行联合分析. 这将产生哪些数据难题呢? 数据孤岛:电商部门的数据存在数仓A.门店经营收入数据存在数仓 ...
- 阿里云智能对话分析服务
2019独角兽企业重金招聘Python工程师标准>>> 关于智能对话分析服务 智能对话分析服务 (Smart Conversation Analysis) 依托于阿里云语音识别和自然 ...
- [原创]C#应用访问Microsoft SQL Server 2005分析服务
接上次建立的多维数据集 一.前言 1.运行环境 Windows 2003 Server Enterprise Edition with Service Pack 1 Microsoft SQL Ser ...
- 微服务的好处与弊端_《微服务架构设计模式》-学习总结07
本篇主要总结第七章:在微服务架构中实现查询 在微服务架构中查询数据的挑战 何时以及如何使用API组合模式实现查询 何时以及如何使用CQRS模式实现查询 微服务架构中,查询通常需要检索分散在多个服务所拥 ...
- [附源码]java毕业设计石林县石漠化信息查询分析系统
项目运行 环境配置: Jdk1.8 + Tomcat7.0 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclis ...
最新文章
- python模块下载过程出错_尝试导入已安装的python模块时收到错误
- centos7 php多版本切换_centos7安装python3
- error: RPC failed; curl 56 GnuTLS recv error (-54): Error in the pull function.
- metinfo mysql 数据表_《MetInfo网站管理系统》常见问题整理
- weblogic各个版本对JDK和Spring的支持度
- Linux crontab 详细介绍及执行php
- java 打包乱码_Java程序打包之后中文乱码的原因及解决方法
- 几篇关于 Redis集群方面的知识学习
- MICRO‘21文章挑选(感兴趣)
- 公摊面积用计算机怎么计算,公摊面积计算(公摊面积计算器)
- python修改sheet名称_python excel练习:新建sheet、修改名称、设定颜色、打印sheet名称,复制,保存...
- Matlab 仿真——直流电机速度控制(1)直流电机建模
- 小米高通系列清串号打开写号端口工具_手机sn码序列号修改工具,高通串号永久写入!...
- 关于使用EasyExcel进行单元格合并的问题
- 一起Talk Android吧(第五百零七回:图片滤镜ImageFilterView)
- 无损音乐下载器 MusicTools单文件免安装-v1.9.3.1
- BA-业务架构_优化“价值主张画布”,助力企业数字化赋能
- Space Invaders 太空侵略者
- python --jieba 分词
- java调用摄像头保存到图库_Java调用摄像头并拍摄保存
热门文章
- eclipse打包成jar_Spring Boot 打包成的可执行 jar ,为什么不能被其他项目依赖?
- nslang oracle_RAC11g+DG 高可用容灾方案部署
- Flink分布式standalone部署方式(第一种方式)
- java的static块执行时机
- 大一新生开发的小工具火了!不一样的 Python 编程体验,还是可视化的那种
- 科技复原,让 3000 多前年的木乃伊「发声」
- 当心啊!仅仅50行Python,就可以在手机端看小姐姐的电脑桌面!
- 程序猿之歌 PHP,1024丨腾讯第一首程序员之歌【Code代码】
- tensorflow学习:分布式tensorflow使用,代码实现inGraph方式
- hdu 6851 Vacation(思维+贪心)