lucene学习心得

今天看了一些lucene3.5的知识,个人感觉,3.5和2.1.0千差万别,今天写一个学习的代码,从学习资料上找了一个例子,敲出来看看。

程序一般,这是我写的第一个lucene程序。

 

import java.io.BufferedReader; 
import java.io.File; 
import java.io.FileInputStream; 
import java.io.IOException; 
import java.io.InputStreamReader;  
import org.apache.lucene.analysis.Analyzer; 
import org.apache.lucene.analysis.standard.StandardAnalyzer; 
import org.apache.lucene.index.CorruptIndexException; 
import org.apache.lucene.index.IndexReader; 
import org.apache.lucene.index.IndexWriter; 
import org.apache.lucene.index.IndexWriterConfig; 
import org.apache.lucene.index.IndexWriterConfig.OpenMode; 
import org.apache.lucene.queryParser.MultiFieldQueryParser; 
import org.apache.lucene.queryParser.ParseException; 
import org.apache.lucene.queryParser.QueryParser; 
import org.apache.lucene.search.IndexSearcher; 
import org.apache.lucene.search.Query; 
import org.apache.lucene.store.Directory; 
import org.apache.lucene.store.FSDirectory; 
import org.apache.lucene.util.Version; 
public class LuceneUtils {

    //当前目录位置 
    public static final String USERDIR = System.getProperty("user.dir"); 
    //存放索引的目录 
    private static final String INDEXPATH = USERDIR + File.separator + "index"; 
    private static final String INDEXPATH2 = "D:/index"; 
  
    //使用版本 
    public static final Version version = Version.LUCENE_35; 
     
    /**
     * 获取分词器
     * */ 
    public static Analyzer getAnalyzer(){ 
        // 分词器 
        Analyzer analyzer = new StandardAnalyzer(version); 
        return analyzer; 
    } 
 
    /**
     * 创建一个索引器的操作类
     * 
     * @param openMode
     * @return
     * @throws Exception
     */ 
    public static IndexWriter createIndexWriter(OpenMode openMode) 
            throws Exception { 
        // 索引存放位置设置 
        Directory dir = FSDirectory.open(new File(INDEXPATH));       
        // 索引配置类设置 
        IndexWriterConfig iwc = new IndexWriterConfig(version, 
                getAnalyzer()); 
        iwc.setOpenMode(openMode); 
        IndexWriter writer = new IndexWriter(dir, iwc); 
        return writer; 
    } 
 
    /***
     * 创建一个搜索的索引器
* @throws IOException
     * @throws CorruptIndexException 
     * */ 
    public static IndexSearcher createIndexSearcher() throws CorruptIndexException, IOException { 
        IndexReader reader = IndexReader.open(FSDirectory.open(new File(INDEXPATH2))); 
        IndexSearcher searcher = new IndexSearcher(reader); 
        return searcher; 
    } 
 
    /**
     * 创建一个查询器
     * @param queryFileds  在哪些字段上进行查询
     * @param queryString  查询内容
     * @return
     * @throws ParseException
     */ 
    public static Query createQuery(String [] queryFileds,String queryString) throws ParseException{ 
         QueryParser parser = new MultiFieldQueryParser(version, queryFileds, getAnalyzer()); 
       
         Query query = parser.parse(queryString); 
         return query; 
    } 
     
 
     

}

你可能感兴趣的:(lucene学习心得)