关于Lucene以及索引和搜索的流程
上一篇 /
下一篇 2012-06-26 09:11:12
/ 个人分类:杂谈
Lucene的普及和成功的背后是因为它的简单。51Testing软件测试网T'q [D&V-u_ 因此,你不需要深入理解Lucene的信息索引和检索工作方面的知识就可以开始使用。
h@(}&B(\0.|Y:YL/`+lox5E0 Lucene提供了简单但是强大的核心API去实现全文索引和检索,你只需要掌握少数的类就能将Lucene整合到应用中。
u"O6A$C3EXGIt0!_7x;w5^8{:r0|'D4]0
刚接触Lucene的人可能会误认为Lucene是一个文件搜索工具、网络爬虫、或者网页搜索引擎。实际上Lucene是一个软件库,而不是一个全功能
的搜索应用程序。它涉及全文索引和搜索,而且做得非常好。Lucene可以让你的应用程序隐藏起复杂的索引和搜索背后的操作,而使用简单的API处理特定
的问题领域和业务规则。你可以想象Lucene就是像一个层,你的应用就在层的上面。
Ku E1X\ ?1Z!L051Testing软件测试网,fp9OXM5l Lucene允许你添加索引和搜索功能到应用程序中。Lucene不关心数据的来源,Lucene可以索引和搜索任何可以转换成文本格式的数据。这意味着你可以用Lucene索引和搜索数据:远程web服务器上的网页、存储在本地文件系统的文档、简单的文本文件、Microsoft Word文档、HTML或PDF文件,或者其他任何可以从中提取文本信息的格式文件。51Testing软件测试网bVje6~?:j
x*L%U9T X-kT#q0 所有搜索引擎的核心就是索引的概念:把原始数据处理成一个高效的交叉引用查找,以便快速检索。让我们看看快速高效的索引和搜索过程。51Testing软件测试网.G'Fzb)Dn1L
51Testing软件测试网j\?(I)qC6U| | 1、索引是什么,为什么它这么重要?51Testing软件测试网AFe7iZR3b
ro2L`
[G1y2Q&qm v0
假如你需要搜索大量的文件,你希望找到那些包含某个单词或词组的文件。你将如何去写一个程序实现这个功能?一个做法就是按顺序扫描每一个文件,搜索是否
包含给定的单词或词组。但是这样的做法有很多缺陷的,其中最明显的就是在大量的文件存在的情况下,速度是令人无法接受的。这种情况下,索引产生了。为了搜
索大量的文本,你首先要对这些文本以特定的结构存储,这种存储结构可以让你迅速的搜索,消除慢的顺序扫描的过程。这种存储结构就叫索引,将文本转换成特定
结构存储的过程,就叫建立索引。
[I3d2{nd0K(G m&g ?0 索引作为一种数据结构,允许你快速随机的访问存储在里面的词。类似于字典的目录,某个词对应到某一页,查找的时候直接定位到那一页,速度就非常快,不用一页一页的翻去查找。Lucene的索引是一种专门设计的数据结构,通常作为一组索引文件存储在文件系统上。51Testing软件测试网Acoa ^ V
51Testing软件测试网;d}XF,U3`2u&x