图6.2从具体功能的角度解释了整个流程。建立索引需要首先定义库中文档的结构,将获取的数据转换为文档;再交由Analyzer完成对文本的分析;经分析后的文本保存到索引库中。查询时首先在Web页面上输入并提交查询条件;查询条件提交后,交给查询分析器Parser进行词法分析;词法分析的结果被传给查询器Searcher,Searcher根据分析后的条件遍历索引得到查询结果;最后页面获得返回的查询结果并显示。
完成这些功能所涉及的主要类包如表6.1所示。在这些类包中,起到核心作用的主要有3个:
org.apache.lucene.analysis
org.apache.lucene.index
org.apache.lucene.search
表6.1 Lucene包结构
包 名 |
功 能 |
org.apache.lucene.analysis |
语言分析器,主要用于切词,中文支持可通过扩展此类解决 |
org.apache.lucene.document |
索引存储时的文档结构管理,类似于关系型数据库的表结构 |
org.apache.lucene.index |
索引管理,包括索引建立、删除等 |
org.apache.lucene.queryParser |
查询分析器,实现查询关键词的运算,如与、或、非等 |
org.apache.lucene.search |
检索管理,根据查询条件,检索得到结果 |
org.apache.lucene.store |
数据存储管理,主要包括一些底层的I/O操作 |
org.apache.lucene.util |
一些公用类 |
整个Lucene项目的单元测试方案由功能测试和性能测试两部分组成。
由上一节的分析可以看出,Lucene功能测试重点在于前台JSP测试以及Lucene搜索、分析、索引类的API测试,一共4部分。
1.JSP表现层(重点是index.jsp、result.jsp)。
2.搜索功能(org.apache.lucene.search)。
3.分词处理(org.apache.lucene.analysis)。
4.索引功能(org.apache.lucene.index)。
而对于Lucene性能测试方面,主要关注搜索单元的性能,以及全部单元一起运行时的性能。详细的内容随后将一一介绍。
本文选自:《51Testing软件测试作品系列》之三的 《互联网单元测试及实践》 ,本站经电子工业出版社和作者的授权,近期将进行部分章节的连载,敬请期待!
版权声明:51Testing软件测试网及相关内容提供者拥有 51testing.com内容的全部版权,未经明确的书面许可,任何人或单位不得对本网站内容复制、转载或进行镜像。51testing软件测试网欢迎与业内同行进行有益的合作和交流,如果有任何有关内容方面的合作事宜,请联系我们。