Lucene入门实例
来源:互联网 发布:mysql 特殊字符转义 编辑:程序博客网 时间:2024/06/05 20:18
package cn.lucene.helloworld;import java.io.File;import org.apache.lucene.analysis.Analyzer;import org.apache.lucene.analysis.standard.StandardAnalyzer;import org.apache.lucene.document.Document;import org.apache.lucene.index.IndexWriter;import org.apache.lucene.index.IndexWriter.MaxFieldLength;import org.apache.lucene.queryParser.MultiFieldQueryParser;import org.apache.lucene.queryParser.QueryParser;import org.apache.lucene.search.Filter;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.junit.Test;import cn.lucene.utils.LuceneUtil;public class HelloWorld {String filePath = "F:\\workspace\\Lucene\\resource\\resource.txt";String indexPath = "F:\\workspace\\Lucene\\indexPath";Analyzer analyzer = new StandardAnalyzer();@Test//建立索引public void createIndex() throws Exception{IndexWriter indexWriter = new IndexWriter(indexPath, analyzer,false, MaxFieldLength.LIMITED);indexWriter.addDocument(LuceneUtil.fileToDocument(new File(filePath)));indexWriter.close();}@Test//根据关键字查询索引库public void query() throws Exception{String queryString = "document";IndexSearcher indexSearcher = new IndexSearcher(indexPath);String[] fields = {"name","content"}; QueryParser parser = new MultiFieldQueryParser(fields, analyzer);Query query = parser.parse(queryString);Filter filter = null;TopDocs topDocs = indexSearcher.search(query, filter, 1000);for(ScoreDoc scoreDoc : topDocs.scoreDocs){int index = scoreDoc.doc;Document document = indexSearcher.doc(index);LuceneUtil.printDocument(document);}}}
工具类:LuceneUtil.java
package cn.lucene.utils;import java.io.BufferedReader;import java.io.File;import java.io.FileInputStream;import java.io.InputStreamReader;import org.apache.lucene.document.Document;import org.apache.lucene.document.Field;import org.apache.lucene.document.Field.Index;import org.apache.lucene.document.Field.Store;public class LuceneUtil {public static Document fileToDocument(File file){Document document = new Document();document.add(new Field("name", file.getName(), Store.YES, Index.ANALYZED));document.add(new Field("content", getFileContent(file), Store.YES, Index.ANALYZED));return document;}public static String getFileContent(File file) {StringBuffer sb = new StringBuffer();try {BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(file)));String str = null;while((str = br.readLine()) != null){sb.append(str);}} catch (Exception e) {throw new RuntimeException(e);}return sb.toString();}public static void printDocument(Document document){System.out.println("-------------start-----------------");System.out.println("name:" + document.get("name"));System.out.println("content:" + document.get("content"));System.out.println("-------------end-----------------");}}
- lucene 搜索入门实例
- lucene入门实例
- lucene&IKAnalyzer入门实例
- Lucene入门实例
- lucene 入门实例
- Lucene入门实例
- Lucene入门实例
- Lucene 入门实例
- Lucene入门实例
- lucene入门实例
- Lucene入门实例
- Lucene入门实例。
- lucene 入门实例
- Lucene框架入门实例
- Lucene入门以及简单实例
- lucene介绍及入门实例
- lucene入门 ==》 实例
- lucene实例
- backbone学习笔记一(model)
- 使用JS关闭当前页面
- drupal7 设置某用户为登录状态
- Eclipse导入两个工程
- urlrewrite配置
- Lucene入门实例
- DataTable用中使用Compute 实现简单的DataTable数据的统计
- Proj.4简介与使用(转自http://hi.baidu.com/liongg)
- 设计模式之原型模式(Prototype)
- JQuery中国省市区无刷新三级联动查询
- 市场调研中的定性/定量分析
- UVA 11991 Easy Problem from Rujia Liu?
- 《财政学》哈维罗森
- Python pydoc模块