Lucene信息索引的过程是: 文本库建立、索引建立、搜索和结果处理。Lucene只能直接对纯文本数据进行索引,而现实中纯文本数据越来越少,越来越多的是富媒体数据,如PDF、WORD、HTML、XML、RTF。Lucene中没有能够自动索引非纯文本的工具,但可以使用工具从这些富媒体中提取纯文本数据,再对其索引,如图5-1所示。
图5-1 Lucene多元数据检索原理
Lucene建立索引调用函数的过程如图5-2所示。
图5-2 Lucene索引函数过程
Document是一种逻辑文件,与一个物理文件相对应,它包含多个Field。将Document加入Index Writer就是将Document建立索引,生成索引文件。Index Writer是一个索引器,专门负责给文档建立索引。建立索引的过程是文档通过索引器向各个索引文件写入索引的过程,这些过程是通过Index Writer上面各个函数完成的。(www.xing528.com)
Lucene使用Index Searcher进行搜索,Hits类可以帮助取得Lucene搜索的结果,再通过对搜索的结果进行评分,最后输出结果。查询方式有多种,包含词条查询、布尔查询、范围查询、前缀查询、短语查询、多短语查询、模糊查询、通配符查询、跨度查询和正则表达式查询等等。
Lucene得到查询结果后,要把结果显示出来就有个排序的问题。Lucene提供使用score进行自然排序,它可以按照文档得分、文档的内部ID号或是按一个或多个字段排序。Lucene还提供对查询结果进行过滤的函数Filter。最后是翻页问题,翻页依赖编程人员选择的方法,目前有3种方法,包含依赖于会话、二是多次查询,三是会话缓存加多次查询的翻页。
图5-3表示Lucene通过索引接口索引应用资源,将它们在Lucene索引数据库中建立索引,最后通过查询接口为用户提供查询。
图5-3 Lucene与应用程序之间的关系
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。