- package Test;
- 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.document.TextField;
- import org.apache.lucene.index.DirectoryReader;
- import org.apache.lucene.index.IndexWriter;
- import org.apache.lucene.index.IndexWriterConfig;
- import org.apache.lucene.queryparser.classic.QueryParser;
- import org.apache.lucene.search.IndexSearcher;
- import org.apache.lucene.search.Query;
- import org.apache.lucene.search.ScoreDoc;
- import org.apache.lucene.store.Directory;
- import org.apache.lucene.store.RAMDirectory;
- import java.io.IOException;
- /**
- * Created by rzx on 2017/6/1.
- */
- public class CindexSearch {
- public static voidcreateIndexANDSearchIndex()throws Exception{
- Analyzer analyzer =new StandardAnalyzer();//标准分词器
- //RAMDirectory内存字典存储索引Directory directory =new RAMDirectory();
- //Directory directory = FSDirectory.open("/tmp/testindex");磁盘存储索引
- IndexWriterConfig config =new IndexWriterConfig(analyzer);
- IndexWriter writer =new IndexWriter(directory,config);
- Document document =new Document();
- String text = "hello world main test";
- document.add(newField("filetest",text, TextField.TYPE_STORED));//将域field添加到document中
- writer.addDocument(document);
- writer.close();
- DirectoryReader directoryReader = DirectoryReader.open(directory);
- IndexSearcher isearch =new IndexSearcher(directoryReader);
- QueryParser parser =newQueryParser("filetest",new StandardAnalyzer());
- Query query = parser.parse("main");//查询main关键词
- ScoreDoc [] hits = isearch.search(query,1000).scoreDocs;
- for(inti = 0; i) {
- Document hitdoc =isearch.doc(hits[i].doc);
- System.out.print("命中的文件内容:"+hitdoc.get("filetest"));
- }
- directoryReader.close();
- directory.close();
- }
- public static void main(String[] args) {
- try {
- createIndexANDSearchIndex();
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- }
来源: http://www.cnblogs.com/NextNight/p/6928352.html