全文本檢索是大多數(shù)web開(kāi)發(fā)者日常工作中都會(huì)面對(duì)的常見(jiàn)而棘手的問(wèn)題,通常也是你的客戶(hù)或者老板對(duì)你咆哮的原因。最簡(jiǎn)單的,你可以在MySQL中建立全文本索引并使用類(lèi)似“MATCH() … AGAINST()” 這樣的查詢(xún)語(yǔ)句來(lái)滿(mǎn)足小規(guī)模數(shù)據(jù)庫(kù)查詢(xún)需求。
但是當(dāng)數(shù)據(jù)庫(kù)中的記錄成千上萬(wàn)地增加時(shí),以上方法實(shí)現(xiàn)的全文本檢索性能將急劇下滑,數(shù)據(jù)庫(kù)響應(yīng)開(kāi)始變得遲緩。這表明MySQL并不是一個(gè)理想的全文本檢索引擎,這時(shí)候你應(yīng)該切換到檢索準(zhǔn)確性和效率更高的ElasticSearch上了,并部署一個(gè)基于Lucene的全文本檢索集群來(lái)實(shí)現(xiàn)高性能。
你可能會(huì)奇怪為什么Lucene的全文檢索性能和準(zhǔn)確性如此優(yōu)異,機(jī)器學(xué)習(xí)領(lǐng)域?qū)<褺urak Kanber在一篇博客中為我們?cè)敱M剖析了全文本檢索背后的概念,并且對(duì)TF-IDF(詞頻-逆文檔頻率)和當(dāng)今最優(yōu)秀的全文檢索算法Okapi-25的原理和實(shí)現(xiàn)進(jìn)行了代碼級(jí)的闡釋?zhuān)扑]大家參考學(xué)習(xí)。
新聞熱點(diǎn)
新聞爆料
圖片精選
點(diǎn)擊排行