使用 apache lucene 搜索文本

使用 apache lucene 搜索文本

ID:6037112

大小:121.50 KB

页数:14页

时间:2017-12-31

使用 apache lucene 搜索文本_第1页
使用 apache lucene 搜索文本_第2页
使用 apache lucene 搜索文本_第3页
使用 apache lucene 搜索文本_第4页
使用 apache lucene 搜索文本_第5页
资源描述:

《使用 apache lucene 搜索文本》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、使用ApacheLucene搜索文本http://www.ibm.com/developerworks/cn/opensource/os-apache-lucenesearch/index.html轻松为应用程序构建搜索和索引功能AmolSonawane,资深软件工程师,EMCAmolSonawane是一名高级软件工程师,拥有班加罗尔国际信息技术学院的研究生学位。他为许多领域设计和开发软件,比如供应链管理、企业应用程序集成和商业智能。他可以使用J2EE技术和框架(Struts和Spring)开发应用程序。他与妻子Anuja居住在印度普内。除了编程,他还喜欢摄影、下棋和字谜。简介: 本

2、文将探讨ApacheLucene——性能卓越、功能全面的文本搜索引擎库。我们将学习Lucene架构及其核心API。学习如何使用Lucene进行跨平台全文本搜索、建立索引、显示结果,以及如何扩展搜索。标记本文!发布日期: 2009年9月14日级别: 初级其他语言版本: 英文建议: 0 (添加评论)平均分(共0个评分)简介Lucene是一个开源、高度可扩展的搜索引擎库,可以从ApacheSoftwareFoundation获取。您可以将Lucene用于商业和开源应用程序。Lucene强大的API主要关注文本索引和搜索。它可以用于为各种应用程序构建搜索功能,比如电子邮件客户端、邮件列表、W

3、eb搜索、数据库搜索等等。Wikipedia、TheServerSide、jGuru和LinkedIn等网站都使用了Lucene。Lucene还为EclipseIDE、Nutch(著名的开源Web搜索引擎)以及IBM®、AOL和Hewlett-Packard等公司提供搜索功能。Lucene已经兼容许多其他编程语言,包括Perl、Python、C++和.NET。到2009年7月30日止,用于Java™编程语言的最新版Lucene为V2.4.1。Lucene功能众多:·拥有强大、准确、有效的搜索算法。·计算每个文档匹配给定查询的分数,并根据分数返回最相关的文档。·支持许多强大的查询类型,

4、比如PhraseQuery、WildcardQuery、RangeQuery、FuzzyQuery、BooleanQuery等。·支持解析人们输入的丰富查询表达式。·允许用户使用定制排序、过滤和查询表达式解析扩展搜索行为。·使用基于文件的锁定机制保护并发索引修改。·允许同时搜索和编制索引。回页首使用Lucene构建应用程序如图1所示,使用Lucene构建功能全面的搜索应用程序主要涉及编制数据索引、搜索数据和显示搜索结果几个方面。图1.使用Lucene构建应用程序的步骤本文从使用LuceneV2.4.1和Java技术开发的样例应用程序中挑选了一些代码片段。示例应用程序为存储在属性文件中

5、一组电子邮件文档编制索引,并展示了如何使用Lucene的查询API搜索索引。该示例还让您熟悉基本的索引操作。回页首为数据编制索引Lucene允许您为任何文本格式的数据编制索引。Lucene可以用于几乎任何数据源以及从中提取的文本信息。您可以使用Lucene编制索引并搜索HTML文档、Microsoft®Word文档、PDF文件中存储的数据。编制数据索引的第一步是让数据变成一个简单的文本格式。您可以使用定制解析器和数据转换器实现这一点。编制索引的过程编制索引是将文本数据转换为有利于快速搜索的格式。这类似于书本后面的索引:为您指出主题在书中出现的位置。Lucene将输入数据存储在名为逆序

6、索引的数据结构中,该数据结构以索引文件集的形式存储在文件系统或内存中。大部分Web搜索引擎都使用逆序索引。它允许用户执行快速关键字查询,查找匹配给定查询的文档。在将文本数据添加到索引前,由分析程序(使用分析过程)进行处理。分析分析是将文本数据转换为搜索基本单位(称为项(term))的过程。在分析过程中,文本数据将经历多项操作:提取单词、移除通用单词、忽略标点符号、将单词变为词根形式、将单词变成小写等等。分析过程发生在编制索引和查询解析之前。分析将文本数据转换为标记,这些标记将作为项添加到Lucene索引中。Lucene有多种内置分析程序,比如SimpleAnalyzer、Standa

7、rdAnalyzer、StopAnalyzer、SnowballAnalyzer等。它们在标记文本和应用过滤器的方式上有所区别。因为分析在编制索引之前移除单词,它减少了索引的大小,但是不利用精确的查询过程。您可以使用Lucene提供的基本构建块创建定制分析程序,以自己的方式控制分析过程。表1展示了一些内置分析程序及其处理数据的方式。表1.Lucene的内置分析程序分析程序对文本数据的操作WhitespaceAnalyzer分解空白处的标记SimpleAna

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。