Re: [討論] 前陣看到一個Ajax搜尋的Case
※ 引述《Kelunyang (可倫)》之銘言:
: : 將已取得的結果集篩選後傳回(如果是 filter),
: : 將目前缺少的集合部份用新的 query 下去取然後合併至目前的(如果是拓展)
: 如果要作中文全文搜尋的話,之前看過DB版深藍站長大大說過一種
: 用空間換取時間的方法,就是把中文關鍵字拆解成一張資料表,到
: 了要搜尋的時候可以藉由WHERE查詢比LIKE快(在目前中文全文搜尋
: 機制仍然不理想的情況下的作法)
: 那這樣是不是類似gpmm大的說法,就事先作好很多的View存下來先前的查詢結果
: 然後再進一步的作filter就好了呢?(還是我誤會的gpmm大的意思)
: 有大大是真的這樣做嗎?總覺得會把資料庫規畫搞得很複雜
真的要用關鍵字 , 我玩過 Compass 的玩法 .
(本質是lucene底,只是包裝過介面 , 是java體系的東西.)
他是怎麼玩咧 , 基本上他是用所謂 resource 的機制 .
每一筆資料要設定某一特定主值 (通常就是 db table的 pk) ,
然後對內文做中文斷詞 (那時用的是庖丁這套大陸分詞系統) ,
按照 key , words 的配對模式存到索引檔裡面去.
(只是概念上 , 這是文件上寫的 , 實際存法我沒研究. XD)
然後查詢時 , 也要針對查詢的關鍵字用一樣的斷詞系統先斷過一次 ,
再針對被斷詞後的關鍵字"群" ,
在索引檔中做查詢跟評分動作 , 跳出分數高的來列出 pk ,
你可以再針對這些 pk 去查出detail的資料.
(是也可以直接把所有資料存進去啦:p)
我想 , 要自己實做的話 , 不外乎就是這些流程 ,
只是 compass 是有跟我們用的 OR-Mapping (也就是Hibernate) 介接 ,
所以我們資料表有新增資料時它會自動build index ,
刪除資料時也會自己 update , 所以操作起來非常愉快. XD
btw , 要自己實作的話 , 當然還是以檔案 io 為主最快了...
ps. 前兩天我玩了一下 ms sql server 2008 的全文檢索 ,
雖然說效果可能沒有非常好 , 但是感覺似乎還算是可以接受...
--
至於文章中引用搜尋引擎的細節 , 有興趣再討論吧 . XD
這裡畢竟是ajax版
--
What do you want to have ? / What do you have?
從書本中,你可以發現我的各種興趣。
從CD中,你可以瞭解我所喜歡的偶像明星。
或許從文字你很難以瞭解一個人,但從物品可以。
My PPolis , My past. http://ppolis.tw/user/Tony
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 221.169.78.140
※ 編輯: TonyQ 來自: 221.169.78.140 (05/18 03:14)
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 4 之 6 篇):
Ajax 近期熱門文章
PTT數位生活區 即時熱門文章