站內(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,搜索核心代碼如下:(渣渣代碼,勿噴)
測試之,大概在1秒內(nèi)能返回結(jié)果,但是還是不夠快,有明顯的延遲感。
尼瑪。。。。。想不到好辦法解決,然后試了試用RAMDirectory ,還是不行,畢竟 RAMDirectory 只是將索引一次性讀到內(nèi)存,避免了一個(gè)預(yù)熱的過程,所以瓶頸感覺應(yīng)該出在了這個(gè)WildcardQuery上(誰知道lucene.net要實(shí)現(xiàn)這種查詢,還有其他辦法效率高嗎?看到的有知道的請(qǐng)?jiān)u論告訴我謝謝。)。
延伸閱讀
- ssh框架 2016-09-30
- 阿里移動(dòng)安全 [無線安全]玩轉(zhuǎn)無線電——不安全的藍(lán)牙鎖 2017-07-26
- 消息隊(duì)列NetMQ 原理分析4-Socket、Session、Option和Pipe 2024-03-26
- Selective Search for Object Recognition 論文筆記【圖片目標(biāo)分割】 2017-07-26
- 詞向量-LRWE模型-更好地識(shí)別反義詞同義詞 2017-07-26
- 從棧不平衡問題 理解 calling convention 2017-07-26
- php imagemagick 處理 圖片剪切、壓縮、合并、插入文本、背景色透明 2017-07-26
- Swift實(shí)現(xiàn)JSON轉(zhuǎn)Model - HandyJSON使用講解 2017-07-26
- 阿里移動(dòng)安全 Android端惡意鎖屏勒索應(yīng)用分析 2017-07-26
- 集合結(jié)合數(shù)據(jù)結(jié)構(gòu)來看看(二) 2017-07-26