Lucene提供的服务实际包含两部分:
1) 写入:将你提供的源写入索引或者将其从索引中删除
写入流程:
(1)源字符串首先经过analyzer处理,分成一个个单词,去除可选(stopword)
(2)将源中需要的信息加入Document的各个field中,并把需要索引的field索引起来,把需要存储的
field存储起来
(3)将索引写入存储器,存储器可以是内存或者磁盘
2) 读出:向用户提供全文搜索服务,让用户通过关键字定位源
读出流程:
(1)用户提供搜索关键词,经过analyzer处理
(2)对处理后的关键字搜索索引找出对应的Document
(3)用户根据需要从找到的Docement中提取需要的Field
概念:
Analyzer :分析器:把一个字符串按照某种规则划分成一个个的词语,并去除其中的无效词语.
Document :用户提供的源是一条条记录,它们可以是文本文件、字符串或者数据库表的一条记录等等。
一条记录经过索引后,就是以 一个Document的形式存储在索引文件中。用户进行搜索也
是以Document列表的形式返回。
field : 一个Docuement可以包含多个信息域,这些信息域就是通过Field在Document中存储的。它
有两个属性可以选择:存储和索引。
term : 搜索的最小单位,表示文档的一个词语,由两部分组成:它表示的词语和这个词语出现的
field
tocken : 是term的第一次出现,它包含term文本和相应的起止偏移以及一个类型的字符串
segment : (小文件)添加索引时,document首先写入不同的小文件然后再合并成一个大索引文件