谈谈对搜索技术Elastic SearchLucene的理解
前言
十一一直陪家人,所以也沒時(shí)間寫文章。最近剛好趕上Elastic Search上市,其實(shí)在圈子里還是挺轟動(dòng)的,因?yàn)檫@個(gè)也是少數(shù)的靠賣開源軟件服務(wù)上市的公司。大家都知道ES是做搜索服務(wù)的,今天就聊聊我對(duì)搜索的認(rèn)識(shí)
從業(yè)務(wù)屬性講
搜索的話,其實(shí)是大家接觸最多的一類業(yè)務(wù)。其實(shí)說機(jī)器學(xué)習(xí),其實(shí)是一門技術(shù),而搜索是一項(xiàng)業(yè)務(wù),機(jī)器學(xué)習(xí)可以應(yīng)用到搜索業(yè)務(wù)中去,同時(shí)中間件技術(shù)、數(shù)據(jù)庫技術(shù)等都跟搜索密不可分。
從業(yè)務(wù)屬性上講搜索的話,在我眼里分為兩種。一種是簡(jiǎn)單的匹配類搜索,一種是業(yè)務(wù)導(dǎo)向類。前者的追求是最高效率的找到跟輸入信息匹配的內(nèi)容,Google、百度做的事情就是這種。業(yè)務(wù)導(dǎo)向型,更多地是將搜索賦予業(yè)務(wù)邏輯,比如A在電商平臺(tái)搜索以一個(gè)包,電商平臺(tái)可以根據(jù)A的消費(fèi)能力去匹配最合適的產(chǎn)品,甚至返回的不是包而是一個(gè)跟包搭配的裙子。
倒排索引/正派索引
真正的搜索業(yè)務(wù)不會(huì)是暴力的從全部數(shù)據(jù)中遍歷搜索的。一定是將一類數(shù)據(jù)建成索引。倒排或者正排表示的是索引建立的方法,這個(gè)索引建立也就是數(shù)據(jù)建模過程,是搜索系統(tǒng)的核心。
上圖是一種索引關(guān)系,正排索引是以Document,也就是文章ID為主key,如果要搜索某個(gè)關(guān)鍵詞,需要遍歷每一篇文章,搜索的時(shí)候計(jì)算量很大,好處是建模容易。
倒排索引就是以詞為主key,搜索的時(shí)候找到詞之后返回這個(gè)詞所在的文章。這種方式搜索的時(shí)候計(jì)算量小,建模比較難。倒排索引也是目前的主流搜索索引建模方法。
Lucene
Lucene是非常有名的搜索引擎了,包含下面的整套架構(gòu),從上面提的索引創(chuàng)建,到用戶的訪問。
Elastic Search其實(shí)是在這一套上面做了分布式服務(wù),規(guī)范了各種訪問和查詢接口,支持多點(diǎn)容災(zāi)和查詢。
未來的搜索
現(xiàn)在的搜索其實(shí)已經(jīng)內(nèi)嵌了很多機(jī)器學(xué)習(xí)相關(guān)的組件,比如建索引的時(shí)候會(huì)有分詞、文本理解相關(guān)的應(yīng)用。未來隨著人工智能的發(fā)展我覺得搜索這項(xiàng)業(yè)務(wù)的本質(zhì)會(huì)發(fā)生變化。
現(xiàn)在搜索做的事情是匹配用戶輸入的信息和世界上已經(jīng)存在的信息。未來隨著類似于深度學(xué)習(xí)GAN模型的發(fā)展,或者其它生成類技術(shù)的發(fā)展。
搜索會(huì)變成自動(dòng)生成用戶輸入的內(nèi)容,比如現(xiàn)在用戶輸入“黃片兒”,搜索引擎是利用爬蟲去找已經(jīng)存在的黃片,未來可能就直接現(xiàn)場(chǎng)人工智能造一個(gè)黃片返回,甚至能根據(jù)用戶習(xí)慣自定義。
這個(gè)就是想說的內(nèi)容,未來機(jī)器學(xué)習(xí)在搜索領(lǐng)域一定大有可為,持續(xù)關(guān)注這個(gè)業(yè)務(wù)方向~
總結(jié)
以上是生活随笔為你收集整理的谈谈对搜索技术Elastic SearchLucene的理解的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 白话异常检测算法Isolation Fo
- 下一篇: 推荐系统之冷启动问题