Lucene

Lucene:信息检索(IR)工具库,或者称为工具箱。信息检索指文档搜索,文档内信息搜索,或者文档相关的元数据搜索等操作。Lucene允许你向自己的应用程序中添加搜索功能,其并不关心数据来源、格式、甚至不关心数据的语种、只要能把它转为文本格式即可。(服务器上的网页,本地文件系统中的文档,Word文档,XML、HTML、PDF文档,或者其他能够从中提取文本信息的数据格式)

1.初识Lucene

组件列表

  1. 索引组件
  2. 搜索组件
  3. 搜索程序的其他模块(Lucene与应用程序进行整合)
    1. 管理界面
    2. 分析界面
    3. 搜索范围

入门程序示例

  1. 建立索引(核心类)
    1. IndexWriter
    2. Directory
    3. Analyzer
    4. Doucment
    5. Field
  2. 搜索索引(核心类)
    1. IndexSearch
    2. Term
    3. Query
    4. TermQuery
    5. TopDocs

2.构建索引

2.1 基本索引操作(索引的CURD)

2.2 在索引过程中对文档和域进行加权操作

2.3 对日期、数字和可排序域进行索引

2.4 高级索引技术

3.搜索功能

3.1 查询Lucene索引

3.2 使用Lucene的多种内置查询

  1. 对特定项的搜索
    TermQuery
  2. 解析用户输入的查询表达式:
    QueryParser
  • QueryParser 对象将用户输入的文本表达式用分词器转换成对应索引库中的分词形式,进一步构成复杂的查询,以提供给搜索模块。
  • 查询表达式与数据库中使用的SQL表达式类似,因为后者必须解析成数据库服务器马上理解的更低级别的元素。
  • 用QueryParser处理基本查询表达式:参见以下表达式以及它们转换后的形式。

3.3 处理搜索结果

3.4 Lucene的评分机制

3.5 解析用户输入的查询表达式

4.分析过程

4.1 理解分析过程

4.2 Lucene的核心分析类

4.3 编写自定义分析器

4.4 处理非英语语种

5.高级搜索技术

5.1 为所有文档加载域值

5.2 对搜索结果进行过滤和排序

5.3 跨度查询和功能查询

5.4 使用项向量

5.5 停止较慢的搜索

6.扩展搜索

6.1 创建自定义排序

6.2 使用Collector

6.3 自定义QueryParser

6.4 使用位置有效载荷

7.下一回:Lucene应用的基本扩展、高级扩展、管理和性能调优、以及其他语言使用Lucene

article.share