Elasticsearch 生态&技术峰会 | Elasticsearch 在企查查的应用实践

本篇内容是企查查搜索部门经理范兆明分享的Elasticsearch在企查查的应用实践。
分享人:企查查搜索部门经理范兆

众所周知,企查查是一家专业做工商查询的公司,所有的业务入口都是基于查询完成的,可以说查询是实现企查查价值的主要入口。所以,本篇内容将介绍Elasticsearch在企查查的应用实践。

企查查遇到阿里云ES时的状况是,海量的数据无法存储,存储后的数据无法做大规模的分析,实时的用户行为得不到到监控。基于这些痛点,让企查查在寻找解决办法的过程中遇到并认识了阿里云ES。通过搭建ELK日志分析平台、日志分析、全文检索等功能,充分的了解和熟悉了ES。

ES主要的技术革新和特点,总结而言有三个:架构天生分布式、检索全文和结构、分析实时聚合。

架构天生分布式

ES天生的分布式架构可以通过硬件扩容的方式实现海量数据的膨胀,并且它的副本模式能够解决数据安全问题。

检索全文和结构

通过Lucene的倒排索引、Bm25的全文检索和高效的结构化检索,能够满足大部分搜索场景。

分析实时聚合

实时的海量聚合能力和多聚合模式能够完成大部分分析场景。

基于以上ES的能力,最终企查查选择了阿里云ES。那么阿里云在ES的基础上又带来了哪些方面的便捷呢?

优秀的NLP分词器

阿里云ES具有优秀的NLP分词器能力。目前主流的ES中文分词器有IK和ANSJ等主要的几种,企查查选择了IK和ANSJ后,清洗了大约百万级的基础数据,然后导入到IK和ANSJ。通过阿里云分词器对比了IK和ANSJ分词器发现,基于NLP的阿里云分词器更优秀。

区别就在于,基于NLP的阿里云分词器可以在不同场景解析出不同的语义,完成不同分词,所以企查查最终的解决方案是,以阿里云分词器为主,以ANSJ分词器为辅做了两套分词模式,同时应用于文档搜索。

一站式管理和高效扩展

这两个特点原本就是云平台的天然优势,这也是为什么中小企业和高速发展企业会选择云平台的根本原因。

企查查基于阿里云Elasticsearch设计的应用实践,这里给大家介绍几个核心的数据。

5000+QPS
5000+QPS是指实时峰值QPS达到每秒5000;

200+应用
200+是指目前有200个数据维度参与了实时搜索;

8TB数据
8TB是指所有实时搜索数据加起来超过8TB。

从下图企查查的发展历程可以发现,2014年企查查只有单一的工伤搜索维度;发展到2020年底,企查查已经超过了200多个搜索维度。快速的版本迭代、数据爆炸式的增长、爆炸式的用户请求等等都在阿里云ES上都得到了很好的体现。因为阿里云具有足够稳定、快速扩容、大大减少运营成本和搜索故障等特点,在这些年的发展中不断的提升企查查的搜索体验。

企查查的技术特点

企查查涉及到的其他技术特点跟全文检索特点是一样的,包括高并发、海量数据、实时聚合和分词等特点。高并发和实时聚合也是ES所擅长的,再加上阿里云优秀的NLP分词器,两两作用后让企查查搜索体验更优秀。

搜索的目的

我们越来越重视搜索并不断提高搜索体验,那么搜索需要呈现的结果是怎样的呢?

第一个是精准搜索。顾名思义,就是把搜索词和文本词完全匹配的结果返回给用户;

第二个是分词匹配。分词匹配是目前搜索技术的主流,也是最难实现的。难度在于,虽然有基于语义的分词器,如基于NLP的阿里云,但仍然会有分词异常和分词歧义的时候。基础数据的权重配比、清洗排序能否达到用户预期和搜索意图,都是长期迭代的任务。

第三个是意义搜索。意思是当用户搜索的词,在精准搜索和分词搜索都没有匹配,但实际上意义是一样时提供的服务,比如番茄和西红柿,或是同音字和形近字,这个时候就会需要意义搜索。意义搜索就是把同义字、同音字和形近字都反馈给搜索用户。

第四个是意图搜索。当用户搜了一大段内容,但是在分词、精准和意义搜索里都没有办法找到搜索结果时,就需要提取用户搜索的核心词, 然后用核心词再去搜索并反馈给用户结果。

第五个是部分匹配搜索。意思是当上述四个搜索都没有结果的时候,需要将部分匹配出的结果反馈给用户。

Elasticsearch还能带来什么?

目前ES在机器学习方面做了持续迭代,可以自动发现实时数据异常,自动实现业务的实时监控。

ES可以做更深层次的数据分析,还可以将发现数据的核心词和数据的特点推荐给搜索的用户。

原文链接

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章