站內(nèi)搜索也要實(shí)現(xiàn)類似功能。最基礎(chǔ)的做法,寫個(gè)方法查數(shù)據(jù)庫搜索歷史綜合表keywordSearch(先將被搜索過的關(guān)鍵字記錄到一張表,記錄好他們被搜索的次數(shù)、上次搜索的有多少結(jié)果)

大概一條sql語句:select keyword,searchCount,xxxx from table where keyword like '會(huì)計(jì)%'

當(dāng)表 keywordSearch 記錄很有幾百上千萬的時(shí)候,like顯然不能及時(shí)響應(yīng)了。但是這種關(guān)鍵字聯(lián)想的一旦有延遲返回,那是很不好的體驗(yàn)。還沒等你返回一次聯(lián)想結(jié)果,用戶早就自己輸完了。。。。。那還聯(lián)想個(gè)球。

 

然后這個(gè)時(shí)候,想到的是用lucene.net

二話不說開干。很快實(shí)現(xiàn)了demo,創(chuàng)建了索引2g,搜索核心代碼如下:(渣渣代碼,勿噴)

seo優(yōu)化培訓(xùn),網(wǎng)絡(luò)推廣培訓(xùn),網(wǎng)絡(luò)營銷培訓(xùn),SEM培訓(xùn),網(wǎng)絡(luò)優(yōu)化,在線營銷培訓(xùn)

測試之,大概在1秒內(nèi)能返回結(jié)果,但是還是不夠快,有明顯的延遲感。

尼瑪。。。。。想不到好辦法解決,然后試了試用RAMDirectory ,還是不行,畢竟 RAMDirectory 只是將索引一次性讀到內(nèi)存,避免了一個(gè)預(yù)熱的過程,所以瓶頸感覺應(yīng)該出在了這個(gè)WildcardQuery上(誰知道lucene.net要實(shí)現(xiàn)這種查詢,還有其他辦法效率高嗎?看到的有知道的請(qǐng)?jiān)u論告訴我謝謝。)。

延伸閱讀

學(xué)習(xí)是年輕人改變自己的最好方式-Java培訓(xùn),做最負(fù)責(zé)任的教育,學(xué)習(xí)改變命運(yùn),軟件學(xué)習(xí),再就業(yè),大學(xué)生如何就業(yè),幫大學(xué)生找到好工作,lphotoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動(dòng)軟件開發(fā)培訓(xùn),網(wǎng)站設(shè)計(jì)培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)學(xué)習(xí)是年輕人改變自己的最好方式