lucene简单安装使用笔记

首先安装eclipse与JDK环境,确保能运行java程序

然后下载lucene的java包(我下载的是lucene3.6.1版本)

新建一个java工程,在依赖包的地方添加lucene依赖(最基本的两个依赖文件,其他扩展依赖的可以在contrib文件夹中找到)


在现有项目中添加依赖包的方法:Project->Property->Java Build Path->Libraries->(Add External JARs...)

import java.io.File;
import org.apache.lucene.analysis.standard.StandardAnalyzer;
import org.apache.lucene.document.*;
import org.apache.lucene.document.Field.Index;
import org.apache.lucene.document.Field.Store;
import org.apache.lucene.index.*;
import org.apache.lucene.search.*;
import org.apache.lucene.store.*;
import org.apache.lucene.util.Version;
//import org.apache.lucene.queryParser.*;


public class searchTest {

	File file = null;
	FSDirectory dir = null;
	
	IndexWriterConfig conf = null;
	IndexWriter writer = null;
	
	public searchTest(){
		
		try{
			file = new File("d://luc");
			dir = FSDirectory.open(file);
			
			conf = new IndexWriterConfig(Version.LUCENE_36,new StandardAnalyzer(Version.LUCENE_36));
			writer = new IndexWriter(dir, conf);
		}
		catch(Exception e){
			e.printStackTrace();
		}
	}
	
	//push some data
	public void Save(){
		Document doc1 = new Document();
		Field f1 = new Field("name","世界博览",Store.YES,Index.ANALYZED);
		doc1.add(f1);
		
		Document doc2 = new Document();
		Field f2 = new Field("name","读者文摘",Store.YES,Index.ANALYZED);
		doc2.add(f2);
		
		try{
			writer.addDocument(doc1);
			writer.addDocument(doc2);
			
			writer.close();
		}
		catch(Exception e){
			e.printStackTrace();
		}
	}
	
	//search from data
	public void Search(){
		try{
			IndexReader reader = IndexReader.open(dir);
			IndexSearcher searcher = new IndexSearcher(reader);
			
			Term t = new Term("name","文");
			TermQuery q = new TermQuery(t);
			
			ScoreDoc[] docs = searcher.search(q, 1).scoreDocs;
			for(int i = 0;i<docs.length;i++){
				String name = searcher.doc(docs[i].doc).get("name");
				System.out.println(name);
			}
			//打印出 "读者文摘"
			
			
			searcher.close();
		}
		catch(Exception e){
			e.printStackTrace();
		}
	}
	
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		searchTest st = new searchTest();
		st.Save();
		st.Search();
	}
}

编译运行,可以看到已经从插入的两个文档中搜寻出满足条件的结果了,还可以引用一个开源的中文分词包IKAnalyzer实现中文分词搜索,java和lucene都还在学习中,希望能用它做点东西出来。

更多资料参照博客园


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值