Performance optimization with Lucene4.0
原文链接http://www.google.com.hk/url?sa=t&rct=j&q=performance+optimization+with+lucene+4&source=web&cd=1&ved=0CDYQFjAA&url=http://archive.apachecon.com/eu2012/presentations/06-Tuesday/PR-Lucene/aceu-2012-lucene-4-performance-tuning.pdf&ei=axTMUPO9E8yViAfo_oDYDQ&usg=AFQjCNG4lXwTLU-MAl6czbUHhIrdez7AzQ&bvm=bv.1355325884,d.aGc&cad=rjt
该报告中不少亮点,例如:
1 Pluggable Codecs
2 Per Document Values(DocValues)
3 Concurrent Flush 无锁多线程写索引
4 Multiple Scoring Models flexible ranking 排序调优接口的开发、经典模型的调参
5 New Term Dictionary
6 From UTF-16 to UTF-8 no string ojbects anymore
最为关心的对应用来说,查询的性能相关
7 500% faster Filter
8 100x to 200x FuzzyQuery
9 reduces memory footprint 30x
10 10x faster than FieldCache for a float field
11 近似2倍的索引构建性能提升
实践中
1 倒排结构的 可侵入,意味着倒排的结构细粒度的可控,针对具体数据类型。例如key-value型突出的,可以
针对性去掉一些信息
2 各部分codec的可以选择,意味者对特定的数据结构可以采取特定的优化编码
3 得分模型的可配置和可调参,意味着排序的灵活性和更加有针对性的可定制化
4 整个代码结构和接口命名更加规范,便于理解和扩展
5 第三方包的丰富和增强,”拿来用“成本更低
6 collector的可定制,为查询优化开了一个极大地口子
7 方便新技术的实验,例如SSD的扩展,针对SSD特性指定有效的存储结构
8 新的结构更加松散和清晰,意味着lucene被 C++版本搜索借鉴,成本大大降低