拆解Clucene 系列(1)---Clucene的特点和难点

最近,我在阅读和学习Clucene的源代码,在此记录学习和使用心得。网上也有一些分析教程。但几乎都是大同小异。


搜索是本身是一个偏重于算法和流程的东西。我感觉使用面向过程的编程模式反而更好理解一些,但Clucence使用C++的特性,高度面向对象化,到处是接口。反而加大了理解难度。

clucene的特点:

  1. 支持Ascii和unicode两种字符集。
  2. 支持多线程并行查询。
  3. 支持多种查询方式。
  4. 代码组织结构清晰简洁。
  5. 几乎不依赖第三方库,部署配置简单。
  6. 索引文件格式独立于应用平台,程序可以跨平台编译运行。
  7. 程序自带有多种分析器,并且很容易扩展。
  8. Clucene提供的api,比较简单易懂。
Clucence的难点有:
  1. 在代码中,使用了较多的设计模式。设计模式主要有职责链模式,工厂模式,组合模式,迭代器模式等。
  2. 构建索引的过程。
  3. 索引合并的过程。
  4. 权重打分的算法。
  5. 模糊查询的实现。
  6. Bool查询的实现。
  7. 一些算法的实现(跳跃表的实现,边界距离的实现)。
  8. 代码量比较大,但也没有日志,跟踪不到整个流程。

Clucence的几个重要术语有:http://blog.csdn.net/smartfox80/article/details/52182689

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值