ITPub博客

首页 > 应用开发 > Java > 老版本lucene例子

老版本lucene例子

原创 Java 作者:大秦here 时间:2014-04-12 14:39:10 0 删除 编辑
package TestLucene;


import java.io.File;
import java.io.FileReader;
import java.io.Reader;
import java.util.Date;


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.IndexWriter;




/**
 * This class demonstrate the process of creating index with Lucene 
 * for text files
 */
public class TxtFileIndexer {
public static void main(String[] args) throws Exception{
//indexDir is the directory that hosts Lucene's index files
        File   indexDir = new File("D:\\luceneIndex");
        //dataDir is the directory that hosts the text files that to be indexed
        File   dataDir  = new File("D:\\luceneData");
        Analyzer luceneAnalyzer = new StandardAnalyzer();
        File[] dataFiles  = dataDir.listFiles();
        IndexWriter indexWriter = new IndexWriter(indexDir,luceneAnalyzer,true);
        long startTime = new Date().getTime();
        for(int i = 0; i < dataFiles.length; i++){
        if(dataFiles[i].isFile() && dataFiles[i].getName().endsWith(".txt")){
        System.out.println("Indexing file " + dataFiles[i].getCanonicalPath());
        Document document = new Document();
        Reader txtReader = new FileReader(dataFiles[i]);
        document.add(Field.Text("path",dataFiles[i].getCanonicalPath()));
        document.add(Field.Text("contents",txtReader));
        indexWriter.addDocument(document);
        }
        }
        indexWriter.optimize();
        indexWriter.close();
        long endTime = new Date().getTime();
        
        System.out.println("It takes " + (endTime - startTime) 
                           + " milliseconds to create index for the files in directory "
                  + dataDir.getPath());        
}
}






////////////////////////////////////////////////////////////////////////////////






package TestLucene;


import java.io.File;


import org.apache.lucene.document.Document;
import org.apache.lucene.index.Term;
import org.apache.lucene.search.Hits;
import org.apache.lucene.search.IndexSearcher;
import org.apache.lucene.search.TermQuery;
import org.apache.lucene.store.FSDirectory;


/**
 * This class is used to demonstrate the 
 * process of searching on an existing 
 * Lucene index
 *
 */
public class TxtFileSearcher {
public static void main(String[] args) throws Exception{
   String queryStr = "lucene";
   //This is the directory that hosts the Lucene index
        File indexDir = new File("D:\\luceneIndex");
        FSDirectory directory = FSDirectory.getDirectory(indexDir,false);
        IndexSearcher searcher = new IndexSearcher(directory);
        if(!indexDir.exists()){
        System.out.println("The Lucene index is not exist");
        return;
        }
        Term term = new Term("contents",queryStr.toLowerCase());
        TermQuery luceneQuery = new TermQuery(term);
        Hits hits = searcher.search(luceneQuery);
        for(int i = 0; i < hits.length(); i++){
        Document document = hits.doc(i);
        System.out.println("File: " + document.get("path"));
        }
}
}

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/29603416/viewspace-1140724/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: 没有了~
请登录后发表评论 登录
全部评论

注册时间:2014-04-12

  • 博文量
    3
  • 访问量
    7122