Lucene-搜索的入门例子
2010-05-09 17:13
375 查看
package org.sam.demo.lucene; import java.io.IOException; import org.apache.lucene.analysis.standard.StandardAnalyzer; import org.apache.lucene.index.CorruptIndexException; import org.apache.lucene.queryParser.ParseException; import org.apache.lucene.queryParser.QueryParser; import org.apache.lucene.search.BooleanClause; import org.apache.lucene.search.BooleanQuery; import org.apache.lucene.search.Hits; import org.apache.lucene.search.IndexSearcher; import org.apache.lucene.search.Query; /** * @author Sam * @copyright_code 123456789987654321 * @Date 2008-09-16 * */ public class Search { private final String PATH="E:/Lucene/Index6/"; /* 关于搜索lucene提供了很多类,基本上需要用的也不多,所以这里我就写一些比较常用的! */ public static void main(String[] args) throws CorruptIndexException, IOException, ParseException { // new Search().termSearch("lname","Carson"); String[] keys = {"state","city"}; String[] values = {"CA","Oakland"}; new Search().booleanSerach(keys,values); } public void termSearch(String key,String value) throws CorruptIndexException, IOException, ParseException{ QueryParser qp = new QueryParser(key,new StandardAnalyzer()); IndexSearcher search = new IndexSearcher(PATH); Query tq = qp.parse(value); Hits hits = search.search(tq); System.out.println(hits.length()); for(int i = 0 ; i < hits.length() ;i++){ System.out.println(hits.doc(i).get(key)); } search.close(); } public void booleanSerach(String[] keys,String[] values) throws CorruptIndexException, IOException, ParseException{ QueryParser qp = null; BooleanQuery bq = null; IndexSearcher search = new IndexSearcher(PATH); for(int i = 0 ; i < keys.length ; i++){ qp = new QueryParser(keys[i],new StandardAnalyzer()); Query tq = qp.parse(values[i]); bq = new BooleanQuery(); bq.add(tq, BooleanClause.Occur.MUST); } Hits hits = search.search(bq); System.out.println(hits.length()); for(int i = 0 ; i < hits.length() ;i++){ for(int j = 0 ; j < keys.length ; j++) System.out.print(hits.doc(i).get(keys[j])+" "); System.out.println(); } search.close(); } }
相关文章推荐
- 一个lucene对数据库表做全文搜索的例子
- Lucene 3.6.2入门:高级搜索之自定义评分
- Lucene入门例子
- lucene4.6索引创建和搜索例子
- 【Lucene3.6.2入门系列】第03节_简述Lucene中常见的搜索功能
- 【Lucene3.6.2入门系列】第07节_高级搜索之普通Filter和自定义Filter
- lucene4.6索引创建和搜索例子
- lucene搜索小例子
- lucene的分布式搜索-入门篇
- 搜索学习入门--使用LuceneHighlighter高亮显示Lucene检索结果的关键词
- lucene多种搜索方式详解例子
- 第61天(就业班) Lucene索引库优化、内置分词器、IK分词器、关键字高亮、单字段和多字段搜索、easyui入门
- Lucene 3.6.2入门系列:高级搜索之自定义QueryParser
- lucene多种搜索方式详解例子
- 【Lucene3.6.2入门系列】第12节_近实时搜索
- 一个lucene搜索高亮显示的例子。
- lucene 搜索入门实例
- 【Lucene3.6.2入门系列】第03节_简述Lucene中常见的搜索功能
- Lucene第一个入门学习例子
- lucene.net helper类 【结合盘古分词进行搜索的小例子(分页功能)】