2lucene如何创建一个索引

根据前面的那个例子,写出如下创建索引的例子,搞了老半天能,
3.0的和3.1.0的居然也那么的不一样。。。
先放着,以后备用

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.document.Document;
import org.apache.lucene.document.Field;
import org.apache.lucene.index.CorruptIndexException;
import org.apache.lucene.index.IndexWriter;
import org.apache.lucene.index.IndexWriterConfig;
import org.apache.lucene.index.IndexWriterConfig.OpenMode;
import org.apache.lucene.store.Directory;
import org.apache.lucene.store.FSDirectory;
import org.apache.lucene.store.LockObtainFailedException;
import org.apache.lucene.util.Version;

public class LuceneTest {

	String docsPath = null;   //文件位置
	String indexPath =null;   //索引位置
	public static void main(String[] args) {
		LuceneTest test = new LuceneTest();
		
		try {
			test.index();
		} catch (CorruptIndexException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (LockObtainFailedException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

	}
	/**
	 * 先创立索引
	 * @throws IOException 
	 * @throws LockObtainFailedException 
	 * @throws CorruptIndexException 
	 */
	public void index() throws CorruptIndexException, LockObtainFailedException, IOException
	{
		
		docsPath="F:\\Search engine\\搜索引擎\\lucene-3.1.0-src\\lucene-3.1.0\\contrib\\analyzers\\common\\readm.txt";
		indexPath="D:\\mywork\\LuceneTest\\lucenedic";
		
		if(docsPath==null)
		{
			System.err.println("docsPath为空");
			System.exit(1);
		}
		File docDir = new File(docsPath);
		Analyzer analyzer = new StandardAnalyzer(Version.LUCENE_31);
		Directory dir = FSDirectory.open(new File(indexPath));
		
		IndexWriterConfig iwc = new IndexWriterConfig(Version.LUCENE_31, analyzer);
		/*IndexWriter indexWriter1 = new IndexWriter(dir,new IndexWriterConfig(Version.LUCENE_31,
									new WhitespaceAnalyzer(Version.LUCENE_31)));*/
		
		iwc.setOpenMode(OpenMode.CREATE_OR_APPEND);
		IndexWriter indexWriter = new IndexWriter(dir,iwc);
		Document doc = new Document();
		
		Field pathField = new Field("path",docDir.getPath(),Field.Store.YES,Field.Index.NOT_ANALYZED_NO_NORMS);
		pathField.setOmitTermFreqAndPositions(true);
		doc.add(pathField);
		indexWriter.addDocument(doc);
		indexWriter.close();
		
	}
}

猜你喜欢

转载自qzxfl008.iteye.com/blog/1018962