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可以做更深層次的數據分析,還可以將發現數據的核心詞和數據的特點推薦給搜索的用戶。

原文鏈接

本文爲阿里雲原創內容,未經允許不得轉載。

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