Lucene4.5(HelloWord)

最近项目上用到搜索引擎,用的是lucene3.6,其他同事研究的,没事了自己也来研究研究玩玩,写个HelloWord!

需要引入lucene4.5的3个jar包。

1、lucene-analyzers-common-4.5.0.jar

2、lucene-core-4.5.0.jar

3、lucene-queryparser-4.5.0.jar

 

package com.test;
 

import java.io.IOException;

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.ParseException;
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.search.TopDocs;
import org.apache.lucene.store.Directory;
import org.apache.lucene.store.RAMDirectory;
import org.apache.lucene.util.Version;

/**
 * @author 冰上浮云
 * @version v1.0 2013年10月19日
 */
public class HelloWord {
    
    public static void main(String[] args) throws IOException, ParseException
    {
        //一、创建索引
        //内存索引模板
        Directory dir=new RAMDirectory();
        Analyzer analyzer=new StandardAnalyzer(Version.LUCENE_45);
        
        IndexWriterConfig config=new IndexWriterConfig(Version.LUCENE_45,analyzer);
        IndexWriter indexWriter =new IndexWriter(dir,config);
        
        Document doc=new Document();
        String title="标题";
        String content="被索引的内容";
        Field f1=new Field("title",title,TextField.TYPE_STORED);
        Field f2=new Field("content",content,TextField.TYPE_STORED);
        doc.add(f1);
        doc.add(f2);
        
        indexWriter.addDocument(doc);
        indexWriter.close();
        
        //二、搜索
        DirectoryReader directoryReader=DirectoryReader.open(dir);
        IndexSearcher indexSearcher=new IndexSearcher(directoryReader);
        
        QueryParser parser=new QueryParser(Version.LUCENE_45,"content",analyzer);
        Query query=parser.parse("内容");
        
        TopDocs topDocs=indexSearcher.search(query, null,100);
        ScoreDoc[] hits=topDocs.scoreDocs;
        
        System.out.println("查询结果数:"+hits.length);
        
        for(int n=0;n<hits.length;n++)
        {
            Document hitDoc=indexSearcher.doc(hits[n].doc);
            System.out.println("搜索的结果title:"+hitDoc.get("title"));
        }
    }

}



 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值