應(yīng)用,一定要應(yīng)用

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

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

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

          第一類:數(shù)據(jù)庫內(nèi)嵌全文檢索

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

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

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

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

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

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

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


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 平原县| 新兴县| 图木舒克市| 原阳县| 宿州市| 卫辉市| 汾西县| 壶关县| 岢岚县| 银川市| 镇坪县| 南岸区| 田林县| 龙井市| 山西省| 精河县| 上蔡县| 微博| 扶绥县| 开阳县| 达尔| 贺州市| 珠海市| 微博| 翁源县| 迭部县| 辽源市| 蓬安县| 望谟县| 普格县| 璧山县| 荔波县| 民丰县| 乐东| 兴隆县| 达日县| 安康市| 富民县| 新余市| 固镇县| 渭南市|