大家用的LUCENE是什么版本? 哪个版本性能比较稳定?

shuyanbo 2007-11-15
还请各位告知.
我用的是LUCENE2.0, 但是JAVAEYE上一个朋友做的"庖丁解牛"中文分词组件不能在这个版本上使用, 我要升级.

我最怕的是更新索引时把索引损坏. 不知道各位有没有这样的经历? 说来听听.

对于LUCENE索引达到千万级时,索引更新效率和查找效率大幅度下降, 各位有什么样的优化策略呢? 特别是索引更新比较频繁时, 系统设计是个大麻烦.

还请有经验的朋友进来说说.
imjl 2007-11-15
shuyanbo 写道
还请各位告知.
我用的是LUCENE2.0, 但是JAVAEYE上一个朋友做的"庖丁解牛"中文分词组件不能在这个版本上使用, 我要升级.

an: 你应该到qieqie的圈子问下。


我最怕的是更新索引时把索引损坏. 不知道各位有没有这样的经历? 说来听听.

对于LUCENE索引达到千万级时,索引更新效率和查找效率大幅度下降, 各位有什么样的优化策略呢? 特别是索引更新比较频繁时, 系统设计是个大麻烦.

还请有经验的朋友进来说说.


an: 更新效率要提高就要将索引切开,也就是做多个索引,尽可能保持一定数量(你测试下,多少数据规模的索引更新能达到你要求。查找也需要做相应修改。
比较频繁的,,先做commit,看下是否影响搜索,如果不影响,那么optimize改成较长时间一次。(期间多次commit了)
)
shuyanbo 2007-11-19
1: 我的查询比较特殊, 第一排序是LUCENE默认的SCORE排序,第二排序关键字我有很多(比如更新时间, 计数等其他索引但不分词的字段),还有第三关键字等。索引创建时, 我只能按照某一个关键字的顺序加入到索引中。 我现在没有缓存结果, 每次查询平均符合的结果集大小为1000-2000个,使用我自己的排序关键字时, 速度会很慢。比如3-5秒都有可能的。有时候更慢。索引有1G。

2: 有人深入的读过LUCENE的源码吗? 可以讲讲LUCENE整个查找的过程。对于非SCORE,非DOCID的其他关键字的排序处理SortFitler以及QueryFilter和RangeFilter处理。主要是处理的顺序以及采用的相关算法。

3:另外LUCENE内核处理数字字段采用的是字符串, 我觉得这个对于本身在数据库里是数字的字段排序处理非常低效。 不知道开发人员是怎么考虑的。

4: 对于LUCENE要把全部符合的文档都要把相关度SCORE一遍, 并且计算确切的文档数。这个是否也是大索引以后性能比较低的原因。 是否可以把LUCENE计算SCORE的过程给CANCEL掉, 也就是不必计算相关度,只要相关就行。 用自己设定的排序关键字作为第一关键字。

确实没有来得及去仔细读LUCENE的代码, 有人读过的,请讲一讲。
Global site tag (gtag.js) - Google Analytics