Lucene索引的建立需要两种基础的结构支持,它们分别是Document和Field,这两个概念不能从字面意思上理解。其实Document是Field的集合,它其实主要是用来管理Field的,而Field是一种数据源,也就是要索引的东西。每个Field都有几个重要的属性,它们分别是:
     1 name:它是这个Field的名字。它主要是以后要搜索的时候用的,也就是要按照此名字来对此Field来检索。
     2 value:它是Field的具体的内容。
     3 store:它表明此Field是否需要存储,如果通过名字检索此Field后,要显示完整的Field的内容,那么就要将起属性设置为YES。
     4 index:它表明此Field是否需要索引。它可以有四种不同的值。分别是不索引,索引并且分词,索引不分词,以及不使用分析器来索引。
      搞清楚了Document和Field具体是什么后,就可以了解Lucene索引建立的具体过程了。索引的建立主要是有类IndexWriter来实现的,而实际上索引建立的工作是由DocumentWriter来完成的,IndexWriter主要是将索引中加入已经建立好的Document.通过DocumentWriter建立索引后,建立了如下的文件:segments,deletable,.f, .fdt,.fdx,.fnm,.frq,.prx,.tii,.tis。
    1  segments文件主要记录了索引中有多少个segment,以及每个segment有多少个Document等信息。
    2. fdt文件主要保存了Field的内容,并且它只保存Field属性被设置为YES的Field。
    3 .fdx文件则记录了Document在.fdt文件中的位置。
    4  .fnm文件记录了此segment中所有Document的所有Field的名字。