代码改变世界

lucene 搜索学习笔记 - OK

2011-11-09 17:44  yuejianjun  阅读(273)  评论(0编辑  收藏  举报
索引文件类型:
1 Segments文件。记录索引片断文件的情况。
2.Deletable文件
3.Fields域数据文件(.fnm)。Field的名字都存储在Field信息文件中,后缀是.fnm。   
4.存储的Field(.fdx和.fdt)。
  Index(.fdx) 对每个文档来说,存储指向它的fields数据(.fdt)的指针(pointer)
  Fields Data(.fdt)这个文件存储每个文档的field数据
5.存储的term字典(.tii和.tis)
  Term字典使用如下两种文件存储,第一种是存储term信息(TermInfoFile)的文件,即.tis文件
  另一种是存储term信息的索引文件,即.tii文件,该文件包含.tis文件中每一个IndexInterval的值,与它在.tis中的位置一起被存储,这被设计来完全地读进内存中(read entirely into memory),以便用来提供随机访问.tis文件。该文件的结构与.tis文件非常相似,只是添加了一项数据,即IndexDelta。
6. Term频率数据(.frq)。Term频率数据文件(.frq文件)存储容纳了每一个term的文档列表,以及该term出现在该文档中的频率(出现次数frequency,如果omitTf设置为fals时才存储)。
7. Positions位置信息数据(.prx)。Positions位置信息数据文件(.prx文件)容纳了每一个term出现在所有文档中的位置的列表。注意如果在fields中的omitTf设置为true时将不会在此文件中存储任何信息,并且如果索引中所有fields中的omitTf都设置为true,此.prx文件将不会存在。
8. Norms调节因子文件(.nrm)
9. Term向量文件。Term向量(vector)的支持是field基本组成中对一个field来说的可选项,它包含如下4种文件: 文档索引或.tvx文件;文档或.tvd文件;域field或.tvf文件。
10.删除的文档 (.del)。删除的文档(.del)文件是可选的,而且仅当一个segment存在有被删除的文档时才存在。即使对一单个segment,它也是维护复合segment的外部数据(exterior)。  
11.Lock文件。写锁(write lock)文件名为“write.lock”,它缺省存储在索引目录中
索引过程
1.DocumentsWriter是由IndexWriter调用来负责处理多个文档的类,它通过与Directory类及Analyzer类、Scorer类等将文档内容提取出来,并分解成一组term列表再生成一个单一的segment所需要的数据文件,如term频率、term位置、term向量等索引文件,以便SegmentMerger将它合并到统一的segment中去
 
2.Lucene中基本的概念(fundamental concepts)是index、Document、Field和term。
     
1  一条索引文件(index)包含(contains)了多个(a sequence of)文档(documents)。
2  一个文档(document)是由一连串fields组成。
3  一个field是由一连串命名了(a named sequence of)的terms(词)组成。
4  一个term是一个string(字符串)。
注:一个terms(词)对应多个doc的field(字段),通过跳跃表,找到多个terms(词)的并集docID