云栖硬核回顾|企查查搜索引擎演进之路

本文涉及的产品
智能开放搜索 OpenSearch行业算法版,1GB 20LCU 1个月
推荐全链路深度定制开发平台,高级版 1个月
智能开放搜索 OpenSearch向量检索版,4核32GB 1个月
简介: 企查查作为企业征信行业的搜索引擎,一直以来都与阿里云开放搜索团队有深度合作。本次朱总独家揭秘,开放搜索陪伴企查查从创业初期到成为企业征信行业的独角兽的过程中,是如何满足企查查产品海量数据的精准搜索需求的。

本文来自于2019年云栖大会--搜索推荐工程技术专场嘉宾:企查查技术总监 朱正亮 的分享

前言
企查查作为企业征信行业的搜索引擎,一直以来都与阿里云开放搜索团队有深度合作。本次朱总独家揭秘,开放搜索陪伴企查查从创业初期到成为企业征信行业的独角兽的过程中,是如何满足企查查产品海量数据的精准搜索需求的。

  • 本文字数:2751 个
  • 阅读时间:约9分钟
  • 您将了解:
  1. 企查查搜索引擎演进之路
  2. 开放搜索在业务中的应用场景
  3. 探讨未来搜索服务的形式

以下是来自企查查_朱总的演讲分享,点击 订阅《阿里云搜索与推荐技术交流期刊》,获取本片原文干货文稿!

创业初期如何平衡搜索效率、成本和稳定性

初期,我们作为一家初创公司,产品迭代“效率”是优先考虑的问题,在我们只有100万的数据文档时,选用的是关系型数据库作为数据存储。但随着我们推出正式版,产品受市场欢迎程度大大超过了预期,随之而来的就是公司文档数、用户量、访问量的急速增长过程中逐渐暴露出的技术问题,迫使我们不停升级配置,并不断调整搜索方案。在这个阶段,我们开始逐步接触阿里云的Elasticsearch、Opensearch、ElasticFlow等。
在资金成本和时间成本的综合考虑下,我们放弃了传统数据库,并选择Opensearch作为替代产品;开放搜索的接入成本较低,在快速完成搜索方案的替换后,一切都很顺利,性能问题及交付的效率问题均成功解决。同时在后续的版本迭代中,流量翻了几十番的情况下,开放搜索(Opensearch)的弹性服务对于我们的基础搜索业务的保障也算稳定;

image.png

下图是最近几年企查查迭代的缩影,我们确保每月有大迭代,每周有小迭代的高频迭代速度,对搜索工程师来说,主要工作就是:1、映射字段;2、修改索引;3、修改Quary;4、输出Quary;那么回到之前的问题,基于开放搜索语法的易用性,调试的便利性,有效的缩减了搜索人员的时间成本。

image.png

我们推出的第一版产品叫“企业信用信息查询”,只有最基本的数据,用的是关系型数据库,而到今年6月份,每家企业的数据维度已经达到了100个,而参与搜索的数据维度有45个,如此多的数据会存在于不同的数据源里面,做搜索的同学就需要对接各种数据源,经常处于繁杂的灌数据、删数据、再重新灌的工作中,开放搜索在这一点上帮我们节约了不少运维成本。

image.png

截止到今年年初,企查查全球商业数据库涵盖了200多个国家,4亿多个企业主体,并且参与搜索的文档总数超过了20亿。数据量的大幅度提升给我们带来了新的挑战,就是全量数据灌入、千万级数据翻新的时间挑战。数据公司对于数据的及时性是有严格的要求的,滞后的数据约等于无效的数据,数据价值会显著降低。我们的本地数据搜索是基于开源的搜索引擎完成的,关于数据更新,一直未能完美解决性能和效率的问题。生产线的搜索基于开放搜索,千万级的数据翻新则完全无此问题,无需在性能和效率之间做妥协。

image.png

与大部分数据公司一样,我们的产品迭代快、维度多、数据多。在第一版产品上线一周后,实现了100万的文档数、1万用户以及100 KPS峰值,而到了今年年初,我们的文档数突破了20亿,超过2亿用户,以及平均QPS(主搜)超过了3000。而从最初100万的文档数,到今年初的20亿的文档数,开放搜索在稳定性上给了我们很大的支持,同时也帮我们减少了较多的人员、时间成本。

image.png

如何满足高阶搜索需求

起初我们开始对搜索的期望,是用户输入什么我们给他什么,返回用户想要的东西就可以。后来出现了问题,比如一位用户反馈在我们的平台无法查询到他们的公司。我们查看了用户的输入日志,发现用户输入的是“新奥混疑土”,但需要检索的公司叫“新奥混凝土”,为了解决这个问题,我们接入阿里云的同义词/形近字/同音词的功能,后面对“新奥混凝土”、“经济公司”、“经纪公司”等都做了一些兼容;

后面是分词的问题。初期我们理解的分词也较为简单,做为一家做企业征信的数据公司,不需要做泛泛的分词,因为企业名称存在一定的特殊性,比如“杭州阿里巴巴科技有限公司”、“苏州朗动网络科技有限公司”,前面都是省市区,后面是“科技”、“网络”公司,斩头去尾后,将剩下的字根据其凝固度和自由度,做了自己的分词字典,后面我们对比了阿里云提供给我们的分词产品,效果差距比较大,最终还是决定选择了阿里云的分词。

此后还有主体和认知的问题。当我们听到“北大”的时候,会想到“北京大学”,听到“阿里”的时候,会想到“阿里巴巴”,而用户输入的时候,同样会带有主体认知,但搜索引擎并没有一致的认知。搜索引擎不知道“苏大”是苏州大学,它返回你的或许是“苏大强”。那么我们就需要将常识中的认知,持续的同步给搜索引擎,让它在处理用户的搜索入参时,能理解一些俗语。而这一块工作,并不需要我们的搜索团队做太多干预,开放搜索也具备了通用的主体信息,我们只需做适当补充即可。

image.png

当然,即使再完美的应对机制,也无法保障所有的搜索都能满足用户的搜索预期。在一定的时候我们也会存在一些干预。下图中的一些输入,我们对用户的输入进行了纠错,同时保留选择的权利。这期间搜索团队在后端接入了较多服务,一部分是我们自己做的,另一部分是直接接入了阿里云的服务,比如他的新词发现、人气模型、主体识别、实时提权等。

image.png

企查查搜索的后续方向

前面分享了较多企查查搜索的现状,我们再聊聊企查查搜索的后续方向。套用个年度热门句式,“搜索不再是搜索”。怎么理解?打个比方,当我们输入小米的时候,关注互联网的用户,我们期望返回给他的是“小米科技”、如果关心粮食蔬菜的,我们期望返回给他的是“小米农业发展公司”,关注金融的,我们就给他“小米金融”,简单来说就是实现千人千面,这需要持续的上下文分析的,以及用户画像的沉淀。

image.png

另一方面,我们发现用户不仅是对关键词的输入,也会有口语化的输入,比如用户会问“小米的招股书在哪里”“华为的股东有哪些”“京东的年报有没有发”面对这类情况,我们又该如何处理?这就又涉及到NLP团队,涉及到知识图谱的建设。此时的搜索,不再仅仅是搜索团队的事,会涉及到多团队,多数据的整合。

“搜索依然是搜索”:无论搜索怎么扩充信息,最终我们评估搜索的标准依然是回归到搜索的本身,即是否返回用户最想要的信息。怎么度量这个,如何评估搜索的好坏?如何确认搜索人员做到的精准,是否就是用户想要的?企查查对于搜索的评估主要基于如下4个指标Top3SuggestNullHitRate。我们持续关注上述这个指标的变化,并持续予以优化。

1. TOP3

我们的结果集常态的输入可能有数十条数百条,精准的搜索可能只有1条记录,最大的则能达到1万条。对于不同量级的结果集,我们关注前三条用户的点击比例,并把这个指标作为衡量整个搜索是否精度的最主要指标。

2. Suggest

用户每多输入一个字数,结果集都是在变化,他什么时候点击相当重要,如果持续不点击suggest意味着用户需要输入更多的字数,这时会判断推荐词是否是他想要的,如果该指标比例提高会有效减少用户的输入时间。这也是评估搜索是否精准的一个重要指标。

3. Null

无结果是搜索比较糟糕的体验,为了规避无结果的占比,我们除了分析用户的输入以推动纠错,兼容形近、音近等情况,还补全了诸如二次搜索等机制。

4. HitRate

整体的点击搜索比,宏观面的数据,既可以辅助分析用户的搜索行为,也可以反推当前的数据质量走势。

通过对上述指标的持续跟进,我们可以较为直观的知道整个搜索团队的工作是否在往更好的方向发展,同时也能分析到给用户的搜索习惯走势。

image.png

当然,关于搜索,我们除了上述各种预设的机制外,对于热门的搜索,我们也特别增加了人工干预,以规避新词更新不及时,热点事件排序不合理问题。

加入社区

点击 订阅《阿里云搜索与推荐技术交流期刊》,获取本片原文干货文稿!


如果你想与更多开发者交流随时交流、了解最前沿的搜索与推荐技术,可以扫码加入社群

d4920920587c46d39dda541eb97730c3.jpg

相关产品

开放搜索(Opensearch)

阿里巴巴自主研发的大规模分布式搜索引擎平台,其核心引擎HA3(问天3)系统为包括淘宝、天猫在内的阿里集团核心业务提供搜索服务支持。通过集成智能查询语义理解、机器学习排序算法等能力,旨在为企业提供高搜索质量的一站式内容智能搜索服务。

智能推荐(AIRec)

基于阿里巴巴领先的大数据和人工智能技术,结合在电商、内容、新闻、视频直播和社交等多个行业领域的积累,为全球企业及开发者提供个性化推荐服务

相关实践学习
基于OpenSearch搭建高质量商品搜索服务
本场景主要介绍开放搜索(OpenSearch)打造独有的电商行业垂直解决方案,模板内置电商查询分析、排序表达式及行业算法能力,沉浸式体验更高性能和效果的智能搜索服务,助力企业在线业务智能增长。
相关文章
510特辑 | 读懂阿里日,也就读懂了阿里
510特辑 | 读懂阿里日,也就读懂了阿里
694 0
|
6月前
|
SQL NoSQL 关系型数据库
基础版本抖音(字节跳动青训)
本抖音项目是基于grpc通讯协议开发的高性能微服务,不仅使用gin作为业务层框架,gorm框架作为持久层框架,还使用预编译sql防止sql注入,同时该项目结合连接池技术来构建连接工厂和复用grpc连接来提高系统的性能,这样可以有效的处理高并发场景下的挑战,还可以通过减少频繁创建和销毁grpc连接带来的性能开销
|
数据采集 存储 自然语言处理
来说说近期很火的小众好搜引擎背后的技术
这个文章也是告诉做一个全网搜索需要用到的技术含量
|
消息中间件 设计模式 存储
查漏补缺第六期(京东一面)
前言 目前正在出一个查漏补缺专题系列教程, 篇幅会较多, 喜欢的话,给个关注❤️ ~ 本专题主要以Java语言为主, 好了, 废话不多说直接开整吧~ Kafka的应用场景有哪些,在项目里是如何应用的 Kafka 是一个高吞吐量、可扩展的分布式流处理平台,主要用于构建实时数据流应用程序和数据管道。以下是一些Kafka的应用场景:
|
新零售 人工智能 搜索推荐
百度携手新华书店,引领阅读进入“智慧”时代
百度携手新华书店,引领阅读进入“智慧”时代
219 0
百度携手新华书店,引领阅读进入“智慧”时代
|
监控 前端开发 Cloud Native
第十六届 D2 前端技术论坛完成 6 大专场 21 个话题集结,快来划重点,你一定会有所收获!
一年一度的前端盛会D2前端技术论坛就要来啦,话题集结完成,快来报名学习吧!
1608 0
第十六届 D2 前端技术论坛完成 6 大专场 21 个话题集结,快来划重点,你一定会有所收获!
|
新零售 安全 OLAP
QCon演讲,新鲜速递 | 淘宝用户增长探索与实践秘籍
流量红利逐渐消失的近几年,用户增长话题变得非常热门,淘宝在用户增长方向上做了一些探索和实践,技术上还有非常大的场景值得挑战,本文是阿里巴巴高级技术专家——意海,在2019QCon上海的分享,让我们一起交流增长的核心背景、核心体系,希望能为大家带来一些增长技术体系的思考。
QCon演讲,新鲜速递 | 淘宝用户增长探索与实践秘籍
|
弹性计算 监控 网络协议
【云栖号案例 | 互联网】网上书城开创全新电子书商业道路
作为电子书互联网公司,物理机房运维成本高、更换设备周期长,风险大等。这套架构调整方案架构,方案在迁移成本、业务可用性及安全性上都效果显著。
【云栖号案例 | 互联网】网上书城开创全新电子书商业道路
|
物联网 开发者
盘点:2019阿里云峰会上海站 - 阿里小程序云展区有哪些亮点?(附赠开放式论坛嘉宾PPT)
7月25日,在上海世博中心的阿里云峰会上海站,阿里巴巴小程序繁星计划以展区加开放式论坛形式,与各领域开发者、企业和生态合作伙伴充分交流了小程序一云多端的规划和进展,以及阿里系各端APP向小程序开放的资源和能力。
12412 0
|
Cloud Native 架构师 双11
【1109 - 1113直播导视 | PPT 下载】开源日再度来袭:实时计算技术的最新探索成果和实践、今年双11究竟有啥黑科技?
本周4个专题页重磅推荐,直播&前沿技术知识两不误,分别是双十一技术回顾&亚洲最大的开源关系型数据库生态大会PostgresConf.CN&数据库&开源日,块办好小板凳前来观看吧!
2790 0