package lucene.test.analysis;
import java.io.IOException;
import java.util.Date;
import org.apache.lucene.analysis.Analyzer;
import org.apache.lucene.analysis.WhitespaceAnalyzer;
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.IndexWriter.MaxFieldLength;
import org.apache.lucene.store.LockObtainFailedException;
public class IndexMoreAnalyzer {
private static String indexStore="D://MajorWork//javaWeb//luceneTestapi//indexStore";
static protected String[] id={"001","002","003"};
static protected String[] content={"搜尋引擎","全文檢索","資訊檢索"};
public static void main(String[] args)
{
Date start=new Date();
Analyzer analyzer=new WhitespaceAnalyzer();
Analyzer analyzer2=new StandardAnalyzer();
try {
IndexWriter writer=new IndexWriter(indexStore,analyzer,true,MaxFieldLength.LIMITED);
for(int i=0;i<3;i++)
{
Document doc=new Document();
Field field_id=new Field("id","id[i]",Field.Store.YES,Field.Index.NOT_ANALYZED);
doc.add(field_id);
Field field_content=new Field("content","content[i]",Field.Store.YES,Field.Index.ANALYZED);
doc.add(field_content);
if(1==i)
{
doc.add(field_content);
}
else
{
writer.addDocument(doc,analyzer2);
}
}
writer.optimize();
writer.close();
Date end=new Date();
long indexTime=end.getTime()-start.getTime();
System.out.println("索引完成所需時間:(ms)");
System.out.println(indexTime);
} catch (CorruptIndexException e) {
e.printStackTrace();
} catch (LockObtainFailedException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
System.out.println("建立索引完成!");
}
}