Lucene实战-Searcher使用

</pre><pre name="code" class="cpp">package com.lin.lucene;

import java.io.File;
import java.io.IOException;

import org.apache.lucene.document.Document;
import org.apache.lucene.index.IndexReader;
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.FSDirectory;
import org.apache.lucene.util.Version;
import org.wltea.analyzer.lucene.IKAnalyzer;

public class Searcher {

	private IndexReader reader;

	public void search(String indexDir, String q) throws IOException,
			ParseException {
		Directory dir = FSDirectory.open(new File(indexDir));
		IndexSearcher is = new IndexSearcher(reader.open(dir));

		QueryParser parser = new QueryParser(Version.LUCENE_4_10_2, "contents",
				new IKAnalyzer());
		Query query = parser.parse(q);
		long start = System.currentTimeMillis();
		TopDocs hits = is.search(query, 10);
		long end = System.currentTimeMillis();
		System.out.println("Found " + hits.totalHits + " document(s) (in "
				+ (end - start) + "milliseconds ) that matched query :'" + q
				+ "':");
		for (ScoreDoc scoreDoc : hits.scoreDocs) {
			Document doc = is.doc(scoreDoc.doc);
			System.out.println(doc.get("fullpath"));
		}
	}

	public static void main(String[] args) throws IOException, ParseException {
		new Searcher().search("d:\\index", "hackcoder");
	}
}

时间: 2024-07-29 06:08:06

Lucene实战-Searcher使用的相关文章

Lucene实战(第2版)》

<Lucene实战(第2版)>基于Apache的Lucene 3.0,从Lucene核心.Lucene应用.案例分析3个方面详细系统地介绍了Lucene,包括认识Lucene.建立索引.为应用程序添加搜索功能.高级搜索技术.扩展搜索.使用Tika提取文本.Lucene的高级扩展.使用其他编程语言访问Lucene.Lucene管理和性能调优等内容,最后还提供了三大经典成功案例,为读者展示了一个奇妙的搜索世界. 首先你先确定Lucene的版本,然后查一下对应官方的api文档,看看你用的那个方法是实

Lucene实战构建索引

搭建lucene的步骤这里就不详细介绍了,无外乎就是下载相关jar包,在eclipse中新建java工程,引入相关的jar包即可 本文主要在没有剖析lucene的源码之前实战一下,通过实战来促进研究 建立索引 下面的程序展示了indexer的使用 package com.wuyudong.mylucene; import org.apache.lucene.index.IndexWriter; import org.apache.lucene.analysis.standard.Standard

lucene 实战(二)lucene 索引

lucene是一个提供搜索的工具,并不能实现内容的抓取.所有内容的获取完全依赖于自己的应用程序去实现或者第三方的工具来做.在apache lucene下面有一个子项目,Solr可以实现从关系型数据库中获取原始数据.只要拿到原始的文本数据,lucene就可以负责建立相关的索引. 创建索引 1.Field.Store.YES (NO) 存储域选项 设置为Y表示把这个域中的内容完全存储到文件中,方便进行文本的还原 设置为N表示把这个域的内容不存储到文件中,但是可以被索引,此时内容无法完全还原 2.Fi

Lucene实战-Indexer索引创建

package com.lin.util; import java.io.File; import java.io.FileFilter; import java.io.FileReader; import java.io.IOException; import org.apache.lucene.document.Document; import org.apache.lucene.document.Field; import org.apache.lucene.index.IndexWrit

《Lucene实战(第2版)》 配书代码在IDEA下的编译方法

参考: hankcs http://www.hankcs.com/program/java/lucene-combat-2nd-edition-book-with-code-compiled-under-the-idea.html 最基础的Ant编译: 点击右边的加号载入lia2e下的build.xml脚本,接着在列表里双击某单元对应的程序就行了: 通过IDEA Configuration编译运行: 新建一个控制台配置,选择主类: 编译运行报错: java: 找不到符号 符号:   方法 nex

Lucene:基于Java的全文检索引擎简介 (zhuan)

http://www.chedong.com/tech/lucene.html ********************************************** Lucene是一个基于Java的全文索引工具包. 基于Java的全文索引引擎Lucene简介:关于作者和Lucene的历史 全文检索的实现:Luene全文索引和数据库索引的比较 中文切分词机制简介:基于词库和自动切分词算法的比较 具体的安装和使用简介:系统结构介绍和演示 Hacking Lucene:简化的查询分析器,删除的

【Lucene实验1】构建索引

一.实验名称:构建索引 二.实验日期:2013/9/21 三.实验目的: 1)        能理解Lucene中的Document-Field结构的数据建模过程: 2)        能编针对特定数据生成索引文件. 四.实验用的仪器和材料: MyEclipse 10,JDK 五.实验的步骤和方法: 题目一:在指定目录生成表示3本书的索引,要求建立3个document分别存放书名数据.把生成的索引文件截好图(复合索引与一般索引各生成一次) 图1:一般索引的截图 图2:复合索引的截图 题目二:修改

lucene学习

http://www.360doc.com/userhome/3387# <Lucene实战(第2版)> 配书代码在IDEA下的编译方法 http://www.hankcs.com/program/java/lucene-combat-2nd-edition-book-with-code-compiled-under-the-idea.html

Lucene:基于Java的全文检索引擎简介

Lucene是一个基于Java的全文索引工具包. 基于Java的全文索引引擎Lucene简介:关于作者和Lucene的历史 全文检索的实现:Luene全文索引和数据库索引的比较 中文切分词机制简介:基于词库和自动切分词算法的比较 具体的安装和使用简介:系统结构介绍和演示 Hacking Lucene:简化的查询分析器,删除的实现,定制的排序,应用接口的扩展 从Lucene我们还可以学到什么 另外,如果是在选择全文引擎,现在也许是试试 Sphinx的时候了:相比Lucene速度更快, 有中文分词的