`
kaowww153
  • 浏览: 74550 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

lucene2.4.1 搜索文件

阅读更多

虽然lucene3.0都出来了,但是相比较lucene2.4.1的文档更全面一些,所有现在还是用lucene2.4.1

创建lucene的类

/**
 *类说明
 *@author kaowww153
 *@version 1.0 创建时间: Apr 27, 2010 11:17:49 AM
 **/
@Service
public class LuceneTestService {
	@Autowired
	private UserDao userDao;
	
	/**
	 * 方法描述:测试数据
	 * @return
	 */
	public List<User> getUsers(){
		List<User> users = userDao.findAll();
		return users;
	}
	
	/**
	 * 方法描述:
	 */
	public void getLuceneIndex(){
		List<User> users = getUsers();
		IndexWriter indexWriter;
		try {
			//构造函数参数:索引目录,分词类型,是否创建目录,limited 字段默认最大长度10000 unlimited 没有长度限制 
			indexWriter = new IndexWriter("d:/index/ii",new StandardAnalyzer(),true,MaxFieldLength.LIMITED);
			//遍历user放到document里面
			Document document = null;
			for(User user : users){
				document =new Document();
				
				//字段名字,字段值,字段是否保存到index,是否对字段进行分词
				document.add(new Field("uid", user.getUid().toString(), Field.Store.YES, Field.Index.ANALYZED));
				document.add(new Field("username", user.getUsername(), Field.Store.YES, Field.Index.ANALYZED));
				indexWriter.addDocument(document);
			}
						
			indexWriter.optimize();
			indexWriter.close();
		} catch (CorruptIndexException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (LockObtainFailedException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		
	}
	/**
	 * 方法描述:得到搜索lucene的值
	 * @param queryName
	 * @return
	 */
	public ScoreDoc[] getResultByLucene(String queryName) {
		getLuceneIndex();
		IndexSearcher indexSearcher;
		try {
				File file = new File("d:/index/ii");
				FSDirectory fsdir = FSDirectory.getDirectory(file);
				indexSearcher = new IndexSearcher(fsdir);
				//字段是否必须出现
				Occur[] flags = {BooleanClause.Occur.SHOULD};
				//可以选择多个搜索的字段
				Query query = MultiFieldQueryParser.parse(queryName,new  String[]{"username"}, flags, new StandardAnalyzer());
			//	QueryParser queryParser = new QueryParser("username",new PaodingAnalyzer());
			//	Query query = queryParser.parse(queryName);
				TopDocCollector collector = new TopDocCollector(10);  
				indexSearcher.search(query,collector); 
				//符合关键字的document
				ScoreDoc[] hits = collector.topDocs().scoreDocs; 
				return hits;
		} catch (CorruptIndexException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (ParseException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return null;
		
	}
}

 采用junit测试

@ContextConfiguration(locations = {"/applicationContext*.xml"})
public class UserServiceTest extends AbstractTransactionalJUnit4SpringContextTests {

	
	@Autowired
	private LuceneTestService luceneService;
	@Test
	public void test() {
		ScoreDoc[] hits = luceneService.getResultByLucene("qeqw 111");
		System.out.println(hits.length);	
	}
	
}
房改房

 

分享到:
评论

相关推荐

    lucene2.4.1 API手册

    Lucene 2.4.1 API手册提供了关于如何使用此版本的Lucene构建全文搜索引擎的详细指南。尽管较新版本的功能更加丰富,但理解这个版本的基础API对于学习全文检索技术的基本原理非常有益。通过熟练掌握这些API,开发者...

    lucene 2.4.1源码在eclipse调试运行通过

    下载的文件名为“lucene-2.4.1-src”。 导入源码到Eclipse: 1. 打开Eclipse,点击菜单栏的“File” -&gt; “Import”。 2. 在弹出的对话框中,选择“Existing Projects into Workspace”,然后点击“Next”。 3. 选择...

    Lucene2.4.1

    总结来说,Lucene 2.4.1是搜索引擎开发的重要工具,其源码的分析与学习对于提升对全文检索技术的理解至关重要。无论是熟悉核心包的类与接口,还是实践demos包中的示例,都将有助于开发者更好地利用Lucene构建高效、...

    luke for lucene 2.4.1

    总之,"luke for lucene 2.4.1"是Lucene开发和维护者的得力助手,通过其丰富的功能和直观的界面,我们可以更好地理解和优化基于Lucene的搜索引擎。无论你是新手还是经验丰富的开发者,掌握Luke都将极大地提升你在...

    一个很好的lucene帮助文档,需要的朋友可以来下载-Lucene2.4.1 叶明

    《Lucene2.4.1 叶明》这本帮助文档可能是针对 Lucene 2.4.1 版本的一份详尽指南,可能包含了以下内容: 1. **安装与配置**:如何下载、安装和配置 Lucene 2.4.1,以及与现有项目的集成方法。 2. **基本用法**:...

    lucene2.4.1

    1. 创建索引:开发者首先需要实例化一个IndexWriter对象,配置好相应的目录(如lucene-2.4.1目录下的索引文件),然后添加Document对象,每个Document对应一个实际的文档。 2. 添加文档:Document对象包含多个Field...

    lucene-2.4.1搜索框架

    《Lucene 2.4.1搜索框架:深入学习与应用》 Lucene是一个高性能、全文本搜索引擎库,由Apache软件基金会开发并维护。在2.4.1这个版本中,它提供了强大的文本检索功能,被广泛应用于各种信息检索系统,如网站搜索、...

    lucene-2.4.1.tar.gz

    《深入理解Apache Lucene 2.4.1:搜索引擎核心技术剖析》 Apache Lucene是一个开源全文检索库,由Java编写,提供了高性能、可扩展的信息检索服务。标题中的"lucene-2.4.1.tar.gz"表明我们正在讨论的是Lucene的2.4.1...

    lucene src&bin 2.4.1

    总的来说,Apache Lucene 2.4.1版本是一个强大且灵活的搜索工具,无论你是初学者还是经验丰富的开发者,都能从中获益。通过研究源码和使用二进制包,你可以深入理解搜索引擎的运作机制,并构建出高效的搜索解决方案...

    MMAnalyzer 分词必导入jar包(lucene-core-2.4.1.jar je-analysis-1.5.3.jar)

    通过以上介绍,我们了解到MMAnalyzer作为JeasyAnalysis的一部分,是进行中文分词的重要工具,而`lucene-core-2.4.1.jar`则是其背后的基石,提供了必要的搜索和分析功能。正确地理解并使用这两个库,可以帮助开发者在...

    MMAnalyzer 分词jar包(lucene-core-2.4.1.jar je-analysis-1.5.3.jar)

    "lucene-core-2.4.1.jar"是Lucene的核心库,包含了Lucene的基本功能,如索引构建、查询解析、搜索等功能。虽然2.4.1版本相对较老,但在当时,它已经相当成熟,能够支持各种复杂的文本处理任务。这个库是MMAnalyzer...

    lucene核心资源包以及lucene的api

    CHM文件是一种Windows帮助文档格式,包含Lucene 2.4.1版本的详细技术文档,涵盖了各个类和方法的说明,是学习和参考Lucene API的重要资源。 4. **lucene-core-3.0.3.jar** 这是Lucene 3.0.3的核心库文件,包含了...

    lucene-core-2.9.2.jar

    Lucene提供了一个强大的API,使得开发者能够对文本进行索引和搜索,支持布尔逻辑、短语搜索、近似搜索、通配符搜索等多种高级查询功能。 二、lucene-core-2.9.2.jar详解 1. 模型与数据结构:Lucene的核心库主要...

    最全的lucene-2.4.0jar包

    4. **示例和文档**:除了库文件外,这个压缩包可能还包含示例代码和解说文档,帮助开发者更好地理解和使用Lucene。示例通常包括如何创建索引、执行查询、使用特定的Analyzer以及Highlighter等。 在使用Lucene-2.4.0...

    lucene例子

    到 2009 年 7 月 30 日止,用于 Java™ 编程语言的最新版 Lucene 为 V2.4.1。 Lucene 功能众多: 拥有强大、准确、有效的搜索算法。 计算每个文档匹配给定查询的分数,并根据分数返回最相关的文档。 支持许多强大的...

    开发自己的搜索引擎Lucene2.0+Heritrix

    - **索引结构**:不同于传统的 B 树结构,Lucene 在更新索引时会创建新的索引文件,并在合适的时候合并这些文件,减少了频繁的 I/O 操作,提高了索引效率。 - **可扩展性**:Lucene 提供了丰富的 API 接口,可以方便...

    lucene部署步骤

    Lucene 是一个高性能、全文本搜索库,它允许开发者将高级搜索功能集成到自己的应用中。在部署 Lucene 时,通常会将其与一个Web服务器如Tomcat结合使用,以实现网络化的搜索服务。以下是一份详细的Lucene部署步骤,...

    lucene-core-2.9.4.jar.zip

    标题中的"lucene-core-2.9.4.jar.zip"是一个包含Lucene核心库2.9.4版本的压缩文件,它在Java开发环境中扮演着关键角色,尤其是对于那些需要进行文本分析和索引的项目。描述中提到的问题,即初学者在使用MMAnalyzer时...

Global site tag (gtag.js) - Google Analytics