應用,一定要應用

          BlogJava 首頁 新隨筆 聯系 聚合 管理
            25 Posts :: 0 Stories :: 118 Comments :: 0 Trackbacks
          最近由于項目需要,開始對全文檢索做些了解,剛剛開始,由于項目人力的嚴重不足,我沒有太多的時間進行細致的研究,不知道能走到如何的一個深度,走一步,看一步吧。

          我用java做的開發,由于數據庫表并不多,我沒有采用hibernate或者其他的持久層,而是直接使用了jdbc進行數據庫操作。數據庫使用的是Mysql。

          做搜索,第一想到的就是like了,后來發現條件可能比較復雜,效率可能低下,于是準備添加全文檢索的搜索模式。

          第一類:數據庫內嵌全文檢索

          第一種方案:毫無疑問,最為省事的還是數據庫直接幫我搞定,我無須安裝新的東西,也不用花太多的時間做新的研究。
          ??????我用的是Mysql5.1。查官方文檔,使用全文檢索技術很簡單:
          ??????把表建成MyIsam的,
          ??????然后導入數據,
          ??????然后建立fulltext索引,
          ??????然后,調整什么最小詞長(這個部分我還沒做就發現問題了,節約了一部分工作量),
          ??????然后寫一個select * from tbl where match (col1,col2) against ("關鍵字1","關鍵字2")的sql,
          ??????于是發現沒有任何的返回記錄。上網google了一下,才知道mysql不支持中文的全文,在Mysql5.1參考手冊12.7.4中有這么一段話:
          ????? 諸如漢語和日語這樣的表意語言沒有自定界符。因此 FULLTEXT分析程序不能確定在這些或其它的這類語言中詞的起始和結束的位置。其隱含操作及該問題的一些工作區在12.7節,“全文搜索功能”有詳細論述。
          ??????但我沒有找到任何關于這個部分的描述,所以我暫時認為Mysql直到現在對中文的全文檢索依然沒有支持。

          第二種方案:修改版的mysql,因為mysql是開源的軟件,那么mysql本身不支持,有沒有中文版的能支持呢,在google中順手搜到了一個,海量公司研發了一個,網址:http://www.hylanda.com/,由于不是開源的,公司是商業化運作,加上網上應用的人好像也不多,故而這個方案也被擱置了。

          第三種方案:插件,網上能夠google到的就是這樣一個:http://myft.twomice.net/,目前好像是開源運作,我還沒有嘗試,粗略看了一下,怎么還要自己編譯mysql,好像和插件的概念有些出入,不過總的來說,這個方式還是值得嘗試的。

          第四種方案:更換數據庫,目前還有oracle,ms-sql可以選擇,這兩個的中文搜索不知道做的如何,如果不錯的,而mysql又不能解決的話,就換數據庫吧,我想用oracle應該好一些。

          第二類:開源全文檢索引擎
          目前最火的就是lucene吧,可以研究研究。

          在搜索中發現了這樣一篇博客文章,加上,以備查。
          http://blog.csdn.net/jeafyezheng/archive/2006/09/29/1306463.aspx
          posted on 2006-10-12 13:28 flyffa 閱讀(507) 評論(0)  編輯  收藏 所屬分類: 全文檢索/fulltext/搜索

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 渝中区| 泰顺县| 林甸县| 青阳县| 修文县| 平湖市| 西贡区| 霍林郭勒市| 文水县| 平定县| 大方县| 南汇区| 监利县| 衡水市| 高淳县| 临朐县| 黔江区| 灵山县| 鹤山市| 拉孜县| 清涧县| 工布江达县| 收藏| 凉城县| 乌拉特前旗| 西乌| 武功县| 潞西市| 城市| 延川县| 马山县| 延寿县| 巴彦淖尔市| 准格尔旗| 师宗县| 什邡市| 景宁| 连云港市| 天等县| 沐川县| 阜新|