利用Lucene测试索引生成的.fnm 和 .fdx 和 .fdt 和 .tii 和 .tis文件所包含的内容(详解)

2022-07-04 14:24:51 浏览数 (2)

/*  *  * 这段代码用来测试文件segment.fnm等文件所包含的内容

 *

 * */

生成的索引文件.fnm中所包含了Document的所有Field名称。

如图就是生成索引:

第一个截图是:

.fnm文件

.fnm包含了Document中的所有field名称

.fdx文件

.fd是一个是一个索引,用于存储Document在.fdt中的位置

.fdt

.fdt文件用于存储具有Store.YES属性的Field数据

.tii

.tis文件用于存储分词后的词条(Term), 而.tii就是它的索引文件。

它标明了每个.tis文件中国的词条的位置

.tis

.tis文件用于存储分词后的词条(Term)

package segment;

import java.io.IOException; import org.apache.lucene.analysis.standard.StandardAnalyzer; import org.apache.lucene.document.Document; import org.apache.lucene.document.Field; import org.apache.lucene.index.IndexWriter;

public class Segment {

private String INDEX_PATH = "E:\Lucene项目\索引文件"; Document doc1 = null; Document doc2 = null; public Segment(){

try { doc1 = new Document(); Field f1 = new Field("name1", "smi steve ted teddy terry", Field.Store.YES, Field.Index.TOKENIZED); Field f2 = new Field("name2", "what are you doing", Field.Store.YES, Field.Index.TOKENIZED); Field f3 = new Field("name3", "how do you do", Field.Store.YES, Field.Index.TOKENIZED); doc1.add(f1); doc1.add(f2); doc1.add(f3);

doc2 = new Document(); Field f4 = new Field("name4", "smi steve ted teddy terry", Field.Store.YES, Field.Index.TOKENIZED); Field f5 = new Field("name4", "what are you doing", Field.Store.YES, Field.Index.TOKENIZED); doc2.add(f4); doc2.add(f5);

IndexWriter writer = new IndexWriter(INDEX_PATH, new StandardAnalyzer(), true); writer.setUseCompoundFile(false); writer.addDocument(doc1); writer.addDocument(doc2); writer.close(); }catch(IOException e){ e.printStackTrace();

} }

public static void main(String[] args) { // TODO Auto-generated method stub Segment se = new Segment();

}

}

0 人点赞