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