因单位很多系统都是用lucene作为搜索引擎,故本人最近也抽出了一点时间看了看lucene特在此做下笔记。
lucene一个开源项目,目前很成功,依本人从网上搜的内容来看,lucene不是一个完整的全文索引应用,而是一个用Java写的全文索引引擎工具包,它可以方便的嵌入到各种应用中实现针对应用的全文索引/检索功能。
大家可以参考http://www.chedong.com/tech/lucene.html了解更多的东西。
个人理解,lucene是将检索内容处理它自已可以快速检索的特定格式的内容。然后通过lucene,我们能够快速的检索。由此看来luence提供了两大部分重要的API:1,抽取索引,2,检索索引。
那么lucene是怎么从数据中抽取索引,个人觉得luence只是提供了把必要信息组成lucene能够识别的索引文件,对于怎么从源数据中抽索引,lucene没有提供,其实luence也没法提供,因为来源数据太多。下面拿lucene数据库数据结构作个比较:
Lucene |
数据库 |
索引数据源:doc(field1,field2...) doc(field1,field2...)
\ indexer /
_____________
| Lucene Index|
--------------
/ searcher \
结果输出:Hits(doc(field1,field2) doc(field1...))
|
索引数据源:record(field1,field2...) record(field1..)
\ SQL: insert/
_____________
| DB Index |
-------------
/ SQL: select \
结果输出:results(record(field1,field2..) record(fie
|
Document:一个需要进行索引的“单元”,一个Document由多个字段组成 |
Record:记录,包含多个字段 |
Field:字段 |
Field:字段 |
Hits:查询结果集,由匹配的Document组成 |
RecordSet:查询结果集,由多个Record组成 |
通过这个表格应该很清楚看懂lucene的索引与数据库里的索引的结构。
lucene址:http://www.apache.org/dyn/closer.cgi/lucene/java/,这里我下载的是3.0.0的版本,打开压缩包后,里面的scr夹子和lucene-core-3.0.0.jar,lucene-demos-3.0.0.jar,luceneweb.war,src下有一个demo和jsp,是两个lucene的示例的源码,你可以用一些IDE新建一个工程,将demo的源码导进去,要运行的话得将lucene-core-3.0.0.jar加入到classpath中,而luceneweb.war我们直接拷贝到tomcat的webapp下,启动tomcat就行了,然后可以访问luceneweb,当我们输入检索词后,点击搜索按钮后发现报错:
An error occurred at line: 98 in the jsp file: /results.jsp
The constructor QueryParser(String, Analyzer) is undefined
95:
96: Analyzer analyzer = new StandardAnalyzer(Version.LUCENE_CURRENT); //construct our usual analyzer
97: try {
98: QueryParser qp = new QueryParser("contents", analyzer);
99: query = qp.parse(queryString); //parse the
100: } catch (ParseException e) { //query and construct the Query
101: //object
这是因为luceneweb这个web应用用的是lucene早期版本的API写的,所以在这里运行报错。
至于lucene的应用示例,je上很多,大家可以参考下面这篇文章,写的很详细,这里就不多说了。http://www.iteye.com/topic/39597
分享到:
相关推荐
通过"Luence.net搜索小程序",我们可以学习到如何实现实时搜索、高亮显示、盘古分词以及智能匹配等一系列高级搜索功能。 首先,Luence.net是Apache Lucene项目的一个.NET版本,Lucene作为业界知名的全文搜索引擎库...
Lucene 是一个强大的全文搜索引擎库,它以 Java 语言实现,并作为 Apache 软件基金会的 Apache Jakarta 项目的一部分开放源代码。Lucene 提供了高效、可扩展的索引和搜索功能,允许开发者轻松地在应用程序中集成高级...
总结来说,Luence.Net搜索Demo是一个极好的学习资源,它展示了如何利用Luence进行全文搜索,涵盖了从索引构建、查询解析到结果展示的全过程。通过深入研究和实践,开发者可以提升在.NET环境中构建高效搜索引擎的能力...
5. **luence46**: 这个压缩包可能包含了Lucene 4.6版本的源代码,源码提供了深入了解其内部工作原理的机会。你可以通过阅读和分析源代码,学习如何实现自己的搜索功能,或者优化现有系统的搜索性能。 通过对...
描述中提到“使用luence索引数据库中的记录”,意味着我们将学习如何将数据库中的数据转化为Lucene可处理的格式,并创建索引。这个过程通常包括以下步骤: 1. **初始化Lucene**: 创建一个`Directory`对象,这是...
**Lucene简介** Lucene是Apache软件基金会的一个开放源代码项目,它是一个高性能、全文本检索库,提供了Java实现的...这种实例有助于开发者快速理解和掌握Lucene的基本用法,为进一步深入学习和应用Lucene打下基础。
在IT行业中,前后端分离是一种常见的软件开发模式,它将应用程序分为两个主要部分:前端(用户界面)和后端(服务器...对于学习和研究Java Web开发的人员来说,这是一个宝贵的资源,可以深入了解这些技术的实际应用。
《Lucene in Action》是一本深入探讨Apache Lucene的权威指南,这本书的中英文PDF版本提供了全面了解和学习这个搜索引擎库的机会。Lucene是Java开发的一款高性能、全文本搜索库,广泛应用于各种需要强大搜索功能的...
**Lucene 基础学习笔记与源码分析** **一、Lucene 概述** Lucene 是一个高性能、全文本搜索库,由 Apache 软件基金会开发并维护。它是一个 Java 开发的开源项目,被广泛应用于各种搜索引擎的构建,支持多种编程...
**标题解析:** "Lucene5学习之FunctionQuery功能查询" Lucene5是Apache Lucene的一个版本,这是一个高性能、全文本搜索库,广泛应用于搜索引擎和其他需要高效文本检索的系统。FunctionQuery是Lucene中的一种查询...
这个项目不仅为开发者提供了学习搜索引擎原理的实践平台,也为有需求的企业或个人提供了快速搭建自定义搜索引擎的可能。通过深入理解和优化这个项目,我们可以更好地理解搜索引擎的工作机制,从而提升信息检索的效率...
- `luke-src-3.5.0.tgz`:同样,这是 LukeAll 3.5.0 版本的源代码,供开发者研究和学习使用。 总的来说,LukeAll 提供了一个直观的图形化界面,使得 Lucene 索引的管理和调试变得更加简单,无论对于初学者还是经验...
### Lucene的应用 #### Lucene简介 Lucene是一款由Doug Cutting开发并维护的高性能全文检索工具包,最初在2001年10月被贡献给...无论是对于初学者还是经验丰富的开发者来说,Lucene都是一个值得深入学习的技术。
《构建垂直搜索引擎:从爬虫到Lucene检索》 在当今信息爆炸的时代,搜索引擎成为了我们获取...通过这个项目,你可以深入学习到Java编程、网页抓取、文本处理和搜索引擎核心技术,为今后的AI项目开发打下坚实的基础。
**正文** Lucene是一个开源全文检索库,由Apache软件基金会开发。它提供了强大的文本分析、索引和搜索功能,广泛应用于各种信息检索系统...通过深入学习和应用Lucene3.0,开发者可以构建出高效、智能的信息检索系统。
通过《Lucene3.0原理与代码分析》的学习,读者可以掌握如何利用Lucene构建自己的全文搜索引擎,理解其高效检索背后的算法和技术,并能根据实际需求定制和优化索引和查询流程。尽管本文档基于3.0版本,但Lucene的基本...
总结起来,"Lucene基类UML图"是学习和理解Lucene框架的重要辅助工具,它直观地展示了Lucene类之间的层次结构、接口关系以及方法调用流程。通过对这个图的深入分析,开发者可以更清晰地把握Lucene的工作机制,从而更...
它涵盖了索引创建、查询执行和结果分页的关键步骤,是学习和理解Lucene搜索引擎功能的绝佳实践。通过深入理解和实践这个例子,开发者可以更好地掌握Lucene在实际应用中的用法,提升其信息检索系统的效率和用户体验。
一个例子学懂搜索引擎(lucene).doc 中文搜索引擎技术揭密.doc 九大开源搜索引擎介绍.txt 基于Nutch的搜索引擎技术.pdf 基于开源工具搭建小型搜索引擎.pdf 整合开源工具的小型搜索引擎构建.pdf 用_Hadoop_进行分布式...
这本书的电子版是仅供个人学习使用,严禁用于商业目的。因此,在使用本书内容时,应该遵守相应的版权法律规定,并尊重原作者的知识产权。如果需要进一步的商业应用或者有版权疑问,应该联系原作者或者出版社进行咨询...