空間站

          北極心空

            BlogJava :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
            15 Posts :: 393 Stories :: 160 Comments :: 0 Trackbacks
          Lucene是開放源代碼的全文搜索引擎工具包,憑借著其強(qiáng)勁的搜索功能和簡單易用的實(shí)現(xiàn),在國內(nèi)已經(jīng)很普及,甚至一度出現(xiàn)了言搜索必稱Lucene的盛景。上個(gè)月Lucene的開發(fā)團(tuán)隊(duì)發(fā)布了 Java Lucene 2.3.1 ,相信很多朋友們都用上了。在國內(nèi)對Lucene的介紹可以分為3塊兒:
          第一類是:以車東Lucene:基于Java的全文檢索引擎簡介 為代表的基礎(chǔ)入門介紹;
          第二類是Lucene倒排索引原理和Lucene軟件包、實(shí)現(xiàn)類的介紹;
          第三類是以中文分詞為中心的介紹;

               任何一個(gè)軟件,包括所有偉大的軟件都有這樣或者那樣的“缺點(diǎn)”和各自適用的領(lǐng)域,Lucene也不例外。在國內(nèi)對Lucene這個(gè)軟件包的批評,似乎沒有 看到過。可能大家都忙于做項(xiàng)目,縱然Lucene有再大的缺陷,憑借著Lucene良好的口碑,也不會說上一句不是。

               今天在閱讀LingWay (一個(gè)做垂直的語義搜索引擎)的CTO Cedric Champeau 先生的博客是發(fā)現(xiàn)有一篇題為:Why lucene isn't that good 為什么Lucene并不是想象的那么棒 的文章:Champeau 開門見山指出了Lucene的6大不足之處,鑒于 Lingway 公司使用Lucene已有好幾年的歷史,我相信Cedric Champeau的對Lucene的評論還是值得一讀。

          不選擇使用Lucene的6大原因:

          6、Lucene 的內(nèi)建不支持群集。
                  Lucene是作為嵌入式的工具包的形式出現(xiàn)的,在核心代碼上沒有提供對群集的支持。實(shí)現(xiàn)對Lucene的群集有三種方式:1、繼承實(shí)現(xiàn)一個(gè) Directory;2、使用Solr 3、使用 Nutch+Hadoop;使用Solr你不得不用他的Index Server ,而使用Nutch你又不得不集成抓取的模塊;

          5、區(qū)間范圍搜索速度非常緩慢;
                 Lucene的區(qū)間范圍搜索,不是一開始就提供的是后來才加上的。對于在單個(gè)文檔中term出現(xiàn)比較多的情況,搜索速度會變得很慢。因此作者稱Lucene是一個(gè)高效的全文搜索引擎,其高效僅限于提供基本布爾查詢 boolean queries;
          4、排序算法的實(shí)現(xiàn)不是可插拔的,因?yàn)樨灤㎜ucene的排序算法的tf/idf 的實(shí)現(xiàn),盡管term是可以設(shè)置boost或者擴(kuò)展Lucene的Query類,但是對于復(fù)雜的排序算法定制還是有很大的局限性;
          3、Lucene的結(jié)構(gòu)設(shè)計(jì)不好;
              Lucene的OO設(shè)計(jì)的非常糟,盡管有包package和類class,但是Lucene的設(shè)計(jì)基本上沒有設(shè)計(jì)模式的身影。這是不是c或者c++程序員寫java程序的通病?
              A、Lucene中沒有使用接口Interface,比如Query 類( BooleanQuery, SpanQuery, TermQuery...) 大都是從超類中繼承下來的;
              B、Lucene的迭代實(shí)現(xiàn)不自然: 沒有hasNext() 方法, next() 返回一個(gè)布爾值 boolean然后刷新對象的上下文;
          2、封閉設(shè)計(jì)的API使得擴(kuò)展Lucene變得很困難;
             參考第3點(diǎn);
          1、Lucene的搜索算法不適用于網(wǎng)格計(jì)算;


          詳情可以查看:Cedric Champeau 先生的博客:Why lucene isn't that good 為什么Lucene并不是想象的那么棒

          posted on 2008-08-14 12:36 蘆葦 閱讀(390) 評論(0)  編輯  收藏 所屬分類: JAVA 、其他
          主站蜘蛛池模板: 雅江县| 青冈县| 兰西县| 文登市| 宿州市| 平阳县| 古浪县| 诏安县| 文山县| 沽源县| 漯河市| 论坛| 汾西县| 九江县| 汶上县| 衡东县| 泸溪县| 广饶县| 商河县| 淮北市| 泊头市| 广元市| 桦川县| 张家口市| 大渡口区| 石台县| 崇信县| 龙海市| 夏津县| 德化县| 尼木县| 济宁市| 乡城县| 喀什市| 沽源县| 萍乡市| 浮梁县| 青田县| 界首市| 遂平县| 马鞍山市|