[自爆系列]浅谈我对搜索的错误了解
1:很久以來,對搜索的認識一直停留在百度搜索,覺得這種東西自己的項目關系不大
2:學會了sql之后,對搜索的了解上升到模糊查詢,LIKE '%****%',
3:了解到lucene.NET的存在后,知道了社區里面有專業的搜索方案,但中文分詞缺乏,所以我拒絕使用。
一直到我經歷了下面這些丑事
?? 1:數據庫的一個表分表后,要得到滿足條件一組的數據,以前簡單的select出來,現在select一下,數據庫內存就不夠了或io就滿了
?? 2:為了給主要業務數據庫做主從,把一個表寫的非常頻繁的字段單獨拎出來,放在另外一個數據庫里面,然后就無法按照這個字段排序了
?? 3:要讀出一組數據,排序是很復雜的那種,寫出來的sql不是吧cpu弄掛了,就是把io弄掛了
然后這些事情讓 我司的一個搜索組搞定了。。。。。。。。。。。
刨根問底,是我以前總認為搜索和檢索詞有關系,有搜索就有檢索詞,沒有檢索詞就沒有搜索
也自己知識面太狹小,實際上,只要是數據庫做了主從或讀寫分離,數據表基本上都都存在橫向拆分和縱向拆分,這個時候如果要得到一個簡單的數據列表,如果走普通的sql,數據庫的io隨著壓力的增加,肯快就掛掉了,
所以,很多公司 都將搜索作為系統數據聚合的工具,各種列表走搜索,各種詳情頁面則直接走數據庫+緩存
對與lucene.NET,性能自然不是問題,加上現在可以跑在mono上,性能更是沒問題,作為數據聚合的工具,沒的說。
關于中文檢索,有盤古分詞,小伙伴們說,效果還過得去。不過我更看中lucene.NET作為數據庫聚合的手段,用來顯示各種列表。
總結
以上是生活随笔為你收集整理的[自爆系列]浅谈我对搜索的错误了解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: WCF-004:WCF中也可以使用Mic
- 下一篇: cognos report在做同比时遇到