luene源码目录

luene源码目录概览

在看源码先先简单了解下Lucene的目录结构

image

  • analysis: analysis是提供给lucene和solr用的分析器,analysis下有多个不同的module:

    1. common: 所有分词器都会用到的共同依赖
    2. icu: icu分析器, ICU是International Components for Unicode (unicode组件)
    3. kuromoji: 日语分析器
    4. morfologik: 波兰语分析器
    5. OpenNLP: 自然语言分析器
    6. phonetic: 语音特征分析器
    7. smartcn: 汉语分析器
    8. stempel: 一个包含波兰语的分析器
    9. uima: 一个借助apache uima的分析器,apache uima是用于分析非结构化内容(文本,音频视频等)的组件架构。
  • backward-codes: 老版本的codec,codec是lucene的编码器,这个是拿来兼容老版本用的

  • benchmark: lucene基准性能测试
  • core: 内核代码
  • demo: 写了些示例程序
  • expressions: lucene4.6之后引入的运算模块,可以做一些field之间的加减乘除等
  • facet: 计算影响因子,大概是词频之类的,在es中影响因子接口被aggreations接口给包装掉了.
  • grouping: 实现类似于sql中group by的功能
  • highligher: 实现查询结果高亮
  • join: 实现join操作
  • memory: 内存索引,这个module下就一个类文件
  • misc: 提供了多种工具,索引分片/合并、改变规范,查找高频词等
  • queries: lucene core用的查询器
  • queryparser: 查询解析器,有classic,Analyzing,Complex Phrase,Extendable,Flexible,Surround,XML多种解析器
  • replicator: 提供索引的复制功能
  • sandbox: 开放给所有lucene commiter的工作空间,打包时候不会默认打进去,有啥新的idea就可以往这个包上提东西。
  • Spatial: 提供空间搜索功能
  • spatial3d: 人如其名
  • spatial-extras: 包如其名
  • suggest: 关键字推荐功能,给推荐和搜索关键词最接近的词