在计算机技术以及网络技术特别是移动通信技术不断发展的背景下给智能手机带来了极大的发展空间。目前性能过剩已经成为了当前智能手机的普遍问题之一,硬件功能过于强大的背后反而是软件不能跟上步伐,这也就导致了用户的体验性出现了一定程度的下降。在人机交互过程中 UI 承载了重要的作用,其中桌面搜索引擎则是 UI 当中重要的构成部分,但是从当前现状来看桌面搜索引擎还处于发展期,而从商业潜在价值上来看手机桌面搜索引擎无疑有着巨大的商机,这也使其受到了越来越广泛的关注。
1、 桌面搜索引引擎概述
用户在使用桌面搜索引擎的过程中可以直接找到本地磁盘上的相关资料,整个过程快捷、迅速,这也使得桌面搜索引擎受到了用户的青睐。尽管手机端的搜索软件与 PC 端的搜索软件在功能上存在着很大的共性,但是本质上还是存在很大的区别,特别是对于安卓手机而言,其底层是基于 Linux,这与 PC 端的Windows 平台有着必然差异性。目前在安卓当中的搜索软件主要分为两类即系统自带搜索工具以及第三方开发软件。以安卓的快速搜索框为例,它可为用户提供一个单独的搜索框,用户经过搜索框可以查询系统内部文件如通讯录、应用程序等;而第三方搜索软件的功能较安卓自带的搜索框则更为全面,以 RE 管理器来看,它的搜索功能以及交互界面则更为人性化,特别是在 root 条件下可以直接对系统内部文件进行操作,这也是安卓搜索框不具备的。
2、 基于安卓系统的桌面搜索引擎的设计
2.1 Lucene搜索引擎框架
对于安卓系统的桌面搜索引擎而言Lucene 搜索引擎框架是实现搜索功能的重要部分,它具备了强大的全文搜索功能,其系统结构与源码组织具体如图 1 所示:
从图 1 中可以清晰看出 Lucene 系统框架主要是由三部分组成即为结构封装、索引核心一级对外接口,在整个框架当中又以索引核心最为重要。在进行设计过程中需要将外部抽象层置于框架当中以此来控制耦合性。而在局部细节设计过程中都需要遵循上述原则让框架的扩展性得到保证且易于理解。从查询方面来看Lucene 的功能较为全面,主要体现为以下方面:
(1)布尔查询。在查询过程中可将分类复杂查询转变为布尔查询并构成一个子句的集合。
(2)通配符查询。可在词条中应用多个通配符以及单个通配符来进行查询。
(3)项查询。项查询可将多个简单的单元素词进行整合从而串联为复杂查询。另外Lucene 还支持范围查询、权重查询以及模糊查询。
2.2 桌面搜索引技术分析
除了基本的框架外还需要相关技术才能够实现让搜索引擎的功能充分发挥效用,其中分词技术便具有关键性作用。对于汉字信息而言分词就是从字、词、句方面对汉字信息进行相关处理从而更为合理地对相关信息进行处理。在中文分词过程中又涉及到了以下方法:
(1)词典分词方法。将汉字串与词典中的词条进行一一对应的适配,若适配成功即成功识别一个词汇。
(2)理解分词方法。较机械式的词典分词方法显然理解分词方法更为智能,利用计算机模拟功能来对相关语句进行“理解”从而达到“识别”目的。当然其中还涉及到了一系列的句法、语法判断,经过综合性分析最终才能完成分词。由于中文结构、语法较为复杂就给理解分词方法的具体实施带来了一定的阻碍,为了让其能够良好实施还需要进一步完善。
(3)统计分词方法。统计分词方法的实施实质上是基于以下公式:F(A:B)=P(A,B)/[P(A)P(B)]。其中 P(A,B) 是 AB 出现概率,而P(A)、P(B) 则表示 A、B 单独出现的概率,通过上述处理即可以从某个方面来判断 A、B 之间的关联程度,其中可设定一个区间,当函数落于该区间内时即判断A、B构成了一个词汇。
为了让该方法得到进一步完善可将 N 元文法模型置于其中来避免词汇歧义。
3、 结语
上文对以 Lucene 搜索引擎框架并结合分词技术对基于安卓系统的桌面搜索引擎的设计进行了阐述,当然在实际设计过程中还需要对分词方法以及框架引擎进一步完善从而让搜索引擎的功能更为全面,让用户得到更好地体验。
参考文献:
[1] 孙友仓 . 一种基于 Web Service 的信息搜索引擎机制 [J]. 山西大学学报 ( 自然科学版 ),2010(02).
[2] 黄轶文 . 搜索引擎原理与快速开发应用[J]. 科技信息 ,2010(36).
[3] 张淳晟 , 郑丽英 . 基于 XML 的搜索引擎倒排索引研究 [J]. 太原科技 ,2009(01).