package com.lzw.test;
import java.io.File;
import java.io.IOException;
import org.apache.lucene.analysis.standard.StandardAnalyzer;
import org.apache.lucene.document.Document;
import org.apache.lucene.document.Field.Store;
import org.apache.lucene.document.StringField;
import org.apache.lucene.document.TextField;
import org.apache.lucene.index.DirectoryReader;
import org.apache.lucene.index.IndexReader;
import org.apache.lucene.index.IndexWriter;
import org.apache.lucene.index.IndexWriterConfig;
import org.apache.lucene.index.Term;
import org.apache.lucene.search.IndexSearcher;
import org.apache.lucene.search.TermQuery;
import org.apache.lucene.search.TopDocs;
import org.apache.lucene.store.Directory;
import org.apache.lucene.store.FSDirectory;
import org.apache.lucene.util.Version;
public class LuceneTest {
public static void main(String[] args) throws IOException {
String ids[]={"1","2","3!"};
String context[]={"我是一個大菜鳥","你是一個好的程勳員","他是一個人人都愛的大美女!"};
String filePath="D://test/index";
//檔案存放位置
Directory directory=FSDirectory.open(new File(filePath));
//索引寫入配置類
IndexWriterConfig config=new IndexWriterConfig(Version.LUCENE_42, new StandardAnalyzer(Version.LUCENE_42));
IndexWriter indexWriter=new IndexWriter(directory, config);
for(int i=0;i<context.length;i++){
//建立文檔
Document document =new Document();
//stringfiele隻會索引但不會分詞
document.add(new StringField("id", ids[i], Store.YES));
//TextField既有索引又會分詞
document.add(new TextField("cont", context[i], Store.YES));
//為文檔寫入索引
indexWriter.addDocument(document);
}
indexWriter.close();
System.out.println("資料初始化成功!");
//接下來做查詢
Directory dire=FSDirectory.open(new File(filePath));
IndexReader reader=DirectoryReader.open(dire);
IndexSearcher searcher=new IndexSearcher(reader);
//詞(cont是标,’一‘是内容)
Term term=new Term("cont", "一");
//查詢這個詞
TermQuery query=new TermQuery(term);
//查詢前5條資料
TopDocs topDocs=searcher.search(query, 5);
System.out.println(topDocs.totalHits);
reader.close();
}
}
用到的jar包
<dependencies>
<dependency>
<groupId>org.apache.lucene</groupId>
<artifactId>lucene-core</artifactId>
<version>4.2.1</version>
</dependency>
<dependency>
<groupId>org.apache.lucene</groupId>
<artifactId>lucene-queryparser</artifactId>
<version>4.2.1</version>
</dependency>
<dependency>
<groupId>org.apache.lucene</groupId>
<artifactId>lucene-analyzers-common</artifactId>
<version>4.2.1</version>
</dependency>
</dependencies>
因為是剛接觸lucene裡面可能很多錯誤的了解,還望多多指正。