深入浅出 jackrabbit 十一 jackrabbit改进要点
2009-09-17 00:00:00 来源:WEB开发网 闂傚倸鍊搁崐鎼佸磹閹间礁纾归柟闂寸绾惧綊鏌熼梻瀵割槮缁炬儳缍婇弻鐔兼⒒鐎靛壊妲紒鐐劤缂嶅﹪寮婚悢鍏尖拻閻庨潧澹婂Σ顔剧磼閹冣挃闁硅櫕鎹囬垾鏃堝礃椤忎礁浜鹃柨婵嗙凹缁ㄧ粯銇勯幒瀣仾闁靛洤瀚伴獮鍥敍濮f寧鎹囬弻鐔哥瑹閸喖顬堝銈庡亝缁挸鐣烽崡鐐嶆棃鍩€椤掑嫮宓佸┑鐘插绾句粙鏌涚仦鎹愬闁逞屽墰閹虫捇锝炲┑瀣╅柍杞拌兌閻ゅ懐绱撴担鍓插剱妞ゆ垶鐟╁畷銉р偓锝庡枟閻撴洘銇勯幇闈涗簼缂佽埖姘ㄧ槐鎾诲礃閳哄倻顦板┑顔硷工椤嘲鐣烽幒鎴旀瀻闁规惌鍘借ⅵ濠电姷鏁告慨顓㈠磻閹剧粯鈷戞い鎺嗗亾缂佸鏁婚獮鍡涙倷閸濆嫮顔愬┑鐑囩秵閸撴瑦淇婇懖鈺冪<闁归偊鍙庡▓婊堟煛鐏炵硶鍋撻幇浣告倯闁硅偐琛ラ埀顒冨皺閺佹牕鈹戦悙鏉戠仸闁圭ǹ鎽滅划鏃堟偨缁嬭锕傛煕閺囥劌鐏犻柛鎰ㄥ亾婵$偑鍊栭崝锕€顭块埀顒佺箾瀹€濠侀偗婵﹨娅g槐鎺懳熺拠鑼舵暱闂備胶枪濞寸兘寮拠宸殨濠电姵纰嶉弲鎻掝熆鐠虹尨宸ョ€规挸妫濆铏圭磼濡搫顫嶇紓浣风劍閹稿啿鐣烽幋锕€绠婚悹鍥у级瀹撳秴顪冮妶鍡樺鞍缂佸鍨剁粋宥夋倷椤掍礁寮垮┑鈽嗗灣閸樠勭妤e啯鍊垫慨妯煎亾鐎氾拷

在看过前面的一系列文章之后,对于jackrabbit,我们脑海里应已经有了一幅比较清晰的图。接下来我们要思考的是如何提高搜索模块的性能。其中涉及到如何正确的使用lucene,如何让搜索模块专注的做它应该做的事情。
我们先谈谈第一个话题:专注。
为什么先要谈专注呢?因为它最重要了,一个功能要能够高效的完成任务,那么它应该只做自己擅长的事情。否则就会引来别人怀疑的目光。这一点在铁岭明星本山大叔的公鸡下蛋这部作品中有着较为深刻的阐述,原文如下:“当时这个鸡———心里特别矛盾,一个公鸡,居然它要下蛋,不是它的活它要干。大公鸡怎么看?鸭子怎么看?大鹅怎么看?跟它好过的小母鸡怎么看?”。
由此我们可以看出,会下蛋这项生理功能是绝不会让一只公鸡成为好公鸡的。在逆向思维一下,我们认为,一只公鸡把打鸣和繁殖后代的工作做好,而且要做得很好,这样它才能成为一只好公鸡。
那么在jackrabbit的querymodule中也是如此,querymodule要做好,就不应该做不属于它做的事情,而且要把search的功能做到非常的好,比如搜索非常的快,等等。
而有些功能的加入,反而会影响搜索的效率,这就是前面提到的高亮功能,高亮功能作为一个附属功能,在不影响搜索效率的情况下当然可以加入到query module中去,但是作为内容仓库,我们不得不考虑一个问题?那就是内容仓库中存放的到底是什么东西?文档,文档会有多少,显然很多很多,一个企业的文档是每天都在增加的,那么为了高亮,我们就必须做两个事情:
1, 把从文档中提取出来的text存放到索引中
2, 把该文档的分词之后的term offset存放到索引中
这样带来的后果是索引大小成倍的增加,索引越大,麻烦越多,需要考虑的问题就越多。比如说,我做分布式索引,那拷贝20G的索引和拷贝10G的索引,给人的感觉就是完全不一样的,那拷贝40G和20G就更不一样了。
Tags:深入浅出 jackrabbit 十一
编辑录入:爽爽 [复制链接] [打 印]更多精彩
赞助商链接