本来计划今天就只写索引的删除、更新、优化的,刚才写完优化又想起来个小知识点,索引的基本信息,诸如,索引中文档的数量、被删除的文档数量等信息。
1、创建Directory,索引的存放位置
2、创建IndexReader
3、获取索引信息
4、关闭IndexReader
以下是代码展示:
package com.hlp.lucene.indexInfor;
import java.io.File;
import java.io.IOException;
import org.apache.lucene.analysis.Analyzer;
import org.apache.lucene.analysis.standard.StandardAnalyzer;
import org.apache.lucene.index.CorruptIndexException;
import org.apache.lucene.index.IndexReader;
import org.apache.lucene.store.Directory;
import org.apache.lucene.store.FSDirectory;
import org.apache.lucene.util.Version;
/**
* 功能:获取索引的信息
*
*/
public class IndexInfor
{
// 索引的存放位置
String luceneIndex = "G://lucene//luceneIndex2";
public void getIndexInfor()
{
IndexReader indexReader = null;
try
{
// 1、创建Directory,索引的存放位置
Directory directory = FSDirectory.open(new File(luceneIndex));
// 2、创建IndexReader
indexReader = IndexReader.open(directory);
// 3、获取索引信息
System.out.println("索引所在目录:" + luceneIndex);
System.out.println("索引中文档数量:" + indexReader.numDocs());
System.out.println("索引中文档的最大值:" + indexReader.maxDoc());
System.out.println("索引中被删除文档数量:" + indexReader.numDeletedDocs());
}
catch (CorruptIndexException e)
{
e.printStackTrace();
}
catch (IOException e)
{
e.printStackTrace();
}finally
{
// 4、关闭IndexReader
if(null != indexReader)
{
try
{
indexReader.close();
}
catch (IOException e)
{
e.printStackTrace();
}
}
} // end finally
} // end getIndexInfor
}
当然了,应该还有其他的索引信息可以获取到,这里我就实验了这几个,以后再琢磨吧。