开放搜索查询分析服务架构解读

简介: 搜索行为在后端都会有大量的数据计算和处理才会召回符合用户需求的搜索结果,本次分享结合自建搜索业务中查询分析服务常见的问题及难点,介绍阿里云开放搜索查询分析具备的能力及解决方案,并深度解读阿里巴巴查询分析服务架构和兼容Elasticsearch的架构是如何实现的

特邀嘉宾:

项招贵(项公)--阿里巴巴高级技术专家

视频地址:开放搜索_新版本_开源兼容版-阿里云

查询分析介绍

查询分析在搜索中的作用

   在搜索请求的处理过程中可以在工程实现上分为两个阶段,召回和排序。在召回阶段需要尽可能的把用户想要的文档在引擎中找到,在排序阶段需要将最满足需求的文档排在最前面去返回给用户。

  通过查询分析可以快速进行处理和分析,比如,往往在实际的生产环境中,用户往往会有一些错误的输入,需要进行query纠错。 其次我们需要对query分词并且识别其中不同词的重要程度,这有助于我们在召回和排序中去使用。 同时由于实际的环境中存在一词多意,所以要进行同义词的扩展。 其次需要对用户的query进行改写去帮助引擎更高效的去执行召回。在query处理的阶段,会输出一些信息去以帮助我们在排序时候跟文档去算一些文档的相关性、类目相关性、以及通过一些将文本进行向量化去算它的语义相关性等。

查询分析链路

总的来说,查询分析的作用就是对用户输入的query进行分析和改写,去提升我们系统的召回的准确率和排序的相关性。 下面通过简单的例子介绍开放搜索的查询分析的功能。

自建搜索服务面临的问题

  1. 需要行业领域知识不断积累;
  2. 缺少大量行业样本数据,自研难度大;
  3. 算法调优、工程开发、日常运维需要持续的人力投入;

开放搜索查询分析特点

  • 面向行业提供完整的查询分析解决方案

针对特定领域提供算法功能,以及对某些特定的算法功能进行优化。例如,电商行业,开放搜索提供了实体识别。教育行业,往往不仅是文本,也有可能是副文本或图片,所以对query进行了一个文本向量化的功能。有些功能在不同的行业里面我们也会针对性的去做优化,像拼写纠错或同义词的挖掘等等。

  • 查询分析每一个功能均可干预

干预是实时生效的, 包含实体识别、拼写纠错、停用词、词权重,同义词,类目预测等。

  • 轻量化的去定制服务

根据客户不同的业务场景去配置他的查询分析的能力,开放搜索提供这些能力功能的全集,用户可以根据实际需求选择其中一部分能力在实际生产环境中使用。 其次支持用户使用多种不同类型的查询分析,或者说是不同的查询分析的配置。

  • 免运维

免除用户日常的运维的持续的投入。

查询分析服务架构

算法服务中心

  • 算法功能的发布,迭代;
  • 用户模型的增删改查;
  • 算法模型的训练;
  • 算法模型的回流;

干预功能

  • 用户干预数据的增删改查;
  • 实时同步干预数据到查询分析服务中;

查询分析和类目预测服务

  • 加载词典、模型、数据、配置;
  • 不同行业通过不同的服务链配置来实现;
  • 加载用户干预数据;

查询过程

  • 根据用户配置的功能执行对应的查询分析链;
  • 改写的query发给引擎执行查询;

DIIRuntime框架

  • 支持多种不同类型的索引,满足算法对各种不同类型数据的高效访问;
  • 索引构建、分发、加载、查询统一,降低开发和运维成本;
  • 链式服务框架,灵活组链,支持不同场景的功能;
  • 算法开发只需要关注算法功能本身逻辑的实现,简单快捷;

Elasticsearch兼容架构

开放搜索Elasticsearch引擎查询分析功能

  • 基本对齐开放搜索的查询分析能力;
  • 具备行业分词能力
  • 可干预
  • 支持扩展分词
  • 具备行业查询分析能力
  • 可配置
  • 可干预

实现架构

1.创建实例

  • 创建开放搜索实例,关联Aliyun Elasticsearch的实例
  • 安装插件

2.配置查询分析

  • Mapping中设置使用响应的分析器
  • 插件功能
  • 提供通用、行业的分词能力
  • 访问查询分析服务,获取query改写结果
  • 改写Elasticsearch的查询query

 

原文链接
本文为阿里云原创内容,未经允许不得转载。 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/512252.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

多任务多目标CTR预估技术

简介: 多目标(Multi Objective Learning)是MTL中的一种。在业务场景中,经常面临既要又要的多目标问题。而多个目标常常会有冲突。如何使多个目标同时得到提升,是多任务多目标在真实业务场景中存在的意义。 作者 | 志阳…

Veeam 发布 2022 年数据保护趋势报告,开发者需关注哪些点?

如今数据作为重要的生产要素,成为数字经济高速发展的关键驱动力之一。越来越多开发者和企业认识到数据保护的重要性,关注数据保护发展趋势,以通过相关的技术解决方案来制定应对策略。 为帮助企业捋请思路,加快数字化转型步伐&…

blazeds调用java_Flex使用Blazeds与Java交互及自定义对象转换详解(转)

一、建立Flex与Java交互的工程。本文中讲到的交互是利用Blazeds的,因为这个是免费的,呵呵,我是穷人。首先就是去下载Blazeds的压缩包,这个可以从官网或者CSDN、JavaEye上下到。解压缩这个包,将里面的Blazeds.war解压&a…

从行业应用到智慧城市,升哲科技Alpha协议如何保障物理世界的数据传输

随着国家《“十四五”信息通信行业发展规划》和《物联网新型基础设施建设三年行动计划(2021-2023年)》的政策出台,物联网的产业发展迎来了新一波浪潮。在农业、制造业、生态环境、智慧消防等场景下,以数字化转型、智能化升级为动力…

Serverless 工程实践 | 零基础上手 Knative 应用

简介: Knative 是一款基于 Kubernetes 的 Serverless 框架。其目标是制定云原生、跨平台的 Serverless 编排标准。 Knative 介绍 Knative 通过整合容器构建(或者函数)、工作负载管理(动态扩缩)以及事件模型这三者实现…

DataWorks功能实践速览 05——循环与遍历

简介: DataWorks功能实践系列,帮助您解析业务实现过程中的痛点,提高业务功能使用效率!通过往期的介绍,您已经了解到在DataWorks上进行任务运行的最关键的几个知识点,其中上期参数透传中为您介绍了可以将上游…

阿里安全开源顶尖技术“猎豹” 计算更快数据更安全

两家公司想开展合作,发挥各自优势联合开发一款产品,如何以“隐私计算”的形式,在保护隐私的情况下,高效地实现两方联合计算,便成为解决这一问题的关键。 最近,阿里安全最新研发的Cheetah(猎豹&…

PaddlePaddle:在 Serverless 架构上十几行代码实现 OCR 能力

简介: 飞桨深度学习框架采用基于编程逻辑的组网范式,对于普通开发者而言更容易上手,同时支持声明式和命令式编程,兼具开发的灵活性和高性能。 飞桨 (PaddlePaddle) 以百度多年的深度学习技术研究和业务应用为基础,是中…

云原生体系下 Serverless 弹性探索与实践

简介: SAE 通过对弹性组件和应用全生命周期的不断优化以达到秒级弹性,并在弹性能力,场景丰富度,稳定性上具备核心竞争力,是传统应用 0 改造上 Serverless 的最佳选择。 作者:竞霄 Serverless 时代的来临 …

java jndi使用_Java项目中使用JNDI连接数据库

因为写的大作业经常用到数据库连接 所以自己写了个数据库连接的类 package DB_Link_info;/* * 数据库链接信息 */public class DB_link_Info {public static final String driverName "com.microsoft.sqlserver.jdbc.SQLServerDriver";public static开发环境为Java,…

Joint Consensus两阶段成员变更的单步实现

简介: Raft提出的两阶段成员变更Joint Consensus是业界主流的成员变更方法,极大的推动了成员变更的工程应用。但Joint Consensus成员变更采用两阶段,一次变更需要提议两条日志, 在一些系统中直接使用时有些不便。那么Joint Consen…

真香!8 行代码搞定最大子数组和问题

作者 | 码农的荒岛求生来源 | 码农的荒岛求生今天给大家带来一道极其经典的题目,叫做最大和子数组,给定一个数组,找到其中的一个连续子数组,其和最大。示例:输入: nums [-2,1,-3,4,-1,2,1,-5,4] 输出: 6 解释: 子数组…

深度干货|云原生分布式数据库 PolarDB-X 的技术演进

简介: 深入解读PolarDB-X的产品架构,以及分布式事务、透明分布式、水平扩展等技术内幕。 一、PolarDB-X是什么 PolarDB-X最早起源于阿里集团2009年提出用分布式架构替代传统商业数据库,阿里研发了TDDL分库分表中间件。2014年阿里集团开始全…

OpenStack 如何跨版本升级

作者 | 孙琦来源 | 万博智云OpenStack是中国私有云的事实标准根据三方统计报告,2020年,中国私有云市场规模达到951.8亿元,同比增长42.1%,私有云在国内IaaS市场占比约45%。私有云提供商有望在云计算市场持续高速发展进程中持续受益…

流计算引擎数据一致性的本质

简介: 本篇文章从流计算的本质出发,重点分析流计算领域中数据处理的一致性问题,同时对一致性问题进行简单的形式化定义,提供一个一窥当下流计算引擎发展脉络的视角,让大家对流计算引擎的认识更为深入,为可能…

java 的io流需要学吗_Java的IO流之字节流,必须要学得内容,你会嘛?

原标题:Java的IO流之字节流,必须要学得内容,你会嘛?伙伴们~端午节过的如何呀~有没有很开心呀~假期已过咱们继续开动了IO流先来认识一下IO流:IO流用来处理设备之间的数据传输,Java对数据的操作是通过流的方式…

为什么大家都在抵制用定时任务实现「关闭超时订单」功能?

作者 | 阿Q来源 | 阿Q说代码前几天领导突然宣布几年前停用的电商项目又重新启动了,让我把代码重构下进行升级。让我最深恶痛觉的就是里边竟然用定时任务实现了“关闭超时订单”的功能,现在想来,哭笑不得。我们先分析一波为什么大家都在抵制用…

面对疾风吧,如何搭建高协同的精准告警体系?

简介: 想要实现AiOps,智能告警少不了。Arms 告警运维中心让面向告警的组织协同更加便捷高效! 作者|九辩 世上没有一个系统是百分之百尽善尽美的。如果想要保证可用性,那么技术团队就得对服务的各种状态了如指掌&…

KubeMeet|聊聊新锐开源项目与云原生新的价值聚焦点

简介: 10 月 16 日上海,OAM/KubeVela、OpenKruise、OCM 三大开源项目的社区负责人、核心贡献者和企业用户将齐聚 KubeMeet,和现场 100 名开发者聊聊新的技术环境和企业需求下,有关“云原生应用管理”的那些事儿。 随着云原生关注…

Redis 究竟适不适合当队列来用?

‍作者 | Magic Kaito来源 | 水滴与银弹我经常听到很多人讨论,关于「把 Redis 当作队列来用是否合适」的问题。有些人表示赞成,他们认为 Redis 很轻量,用作队列很方便。也些人则反对,认为 Redis 会「丢」数据,最好还是…