桌面环境与桌面搜索Desktop Search tools

最近一段时间工作重心都将放在Linux下Desktop search(桌面搜索)框架的研发上。因此对desktop search进行了初步的调研。本文将从下面三个方面展开:

  1. Linux桌面环境(Desktop Environment on Linux)
  2. 现有的桌面搜索工具(Desktop Search tools)
  3. 学术界对Desktop search的研究情况

Linux桌面环境(Desktop Environment on Linux)

首先来说说桌面环境。所谓桌面环境,就是在原来命令行时代的OS外层追加了一层可视化的窗口管理程序,将之前只能使用命令方式进行的文件管理,进程管理,软件管理,硬件管理,计算机配置管理等等工作都转变为界面更加友好的可视化工作方式。桌面环境概念其实是随着桌面操作系统的诞生而产生的。在桌面OS出现以前最有名的OS是MS的DOS。随着苹果发布Macintosh,带有下拉式菜单、桌面图标、能够进行拖曳式操作与双点击的Mac OS进入世人的视野,这是图形化桌面操作系统的首次亮相。紧随其后,MS发布了Windows 1.0,桌面操作系统开始风靡世界。我们将Windows和Mac OS归为一类,他俩作为主流的商业桌面操作系统,几乎垄断了桌面操作系统市场。另一类是Linux桌面操作系统。Linux的发行版本是越来越多,安装在这些发行版本上桌面环境继承了*软件的灵魂,可谓百花齐放,百家争鸣。报的上名号的有GNOME、KDE、Unity、Xfce、MATE、LXDE、Cinnamon、ROX、Enlightenment等等。其中GNOME,KDE稳坐头两把交椅。

GNOME作为最流行的Desk Environment,其2.X系列一直是大多数Linux发行版的默认桌面环境,但是进入3.0时代后,GNOME似乎有些走下坡,一些发行版开始从GNOME抽身,有说法说3.0改的简洁的有点过分,默认连个任务栏也没有。在Ubuntu10.10之前GNOME一直是默认的桌面环境,但之后开始改用自家开发的Unity,也就有了我们现在看到的Ubuntu。如果稍加了解,就会发现其实Unity是基于GNOME开发的。GNOME除了提供功能强大桌面环境以外,还为开发者准备了一个有强大支持的开发平台,帮助开发整合于用户桌面的开发程序。

KDE也是功能非常强大桌面环境,神似Windows,其包含了大量的应用程序,极大的提升了自身的可用性和竞争力。Fedora默认支持GNOME和KDE,Fedora18开始加入了对MATE(GNOME2的一个分支)的支持。GNOME和KDE这两个家伙个头大,能耐也大,要什么功能有什么功能,但是这要造成他俩需要消耗大量的资源。

Xfce, LXDE以及搭载在8.12发布的Elementary OS Luna上的Pantheon(这款UI做的挺帅的,可以关注下)等都是轻量级的桌面环境,它们通常都是为低能耗的机器设计,比如移动设备之类的,它们占用的资源也要少很多。

现有的桌面搜索工具(Desktop Search tools)

说完Desktop environment,我们进入正题。那么为什么出现桌面搜索这么一种需求呢。我们知道搜索概念的出现是因为数据的膨胀,人为检索难度增大。研发一种自动化检索机制是人心所向、众望所归。对于Web搜索来说,数据指的是整个互联网上的海量网页;对于桌面搜索来说,数据指的文件系统中的所有文件。随着硬盘存储容量的提升,单机上存储的数据越来越多,找文件的难度显然越来越大,这就是桌面搜索出现的动机。

当前Window自带有文件搜索功能,但是其功能只能完成文件名的检索,不能对文件内容进行深入的挖掘,此外它默认情况下是直接扫描磁盘,没有建立文件索引,文件的搜索效率很低。

我们理想中的桌面搜索应该具有如下功能:

  1. 能够快速有效的建立索引,索引结构要能够充分压缩索引,减少索引的空间占用,同时又需要尽量不影响检索效率
  2. 除了索引文件名,还要能够索引文件内容,特别是包含文本的文件,要实现这一点就要求必须满足3
  3. 必须支持现有的绝大部分(最好是全部)的文件类型,也就是要能够读取这些文件的内容
  4. 搜索框架要具有很好的可拓展性,当出现一个新的或暂不支持的文件类型,可以通过开发和添加插件的方式实现对该文件类型的支持。
  5. 搜索框架要具有学习和预测用户使用习惯的能力,能够不断的优化查询策略来符合特定用户的查询习惯。
  6. ……待补充

我们先来看看当前有哪些流行的Desktop search东东。首先我们挖一下在Windows下的宝贝。这里我们介绍4款,分别是:

Copernic Desktop Search

它是由老牌的集成搜索公司Copernic开发的桌面搜索工具。Copernic Desktop Search是最早的桌面搜索工具之一,也是Windows平台上评价最高的桌面搜索产品。它在安装后自动为全盘建立索引,并且实时监控文件系统的变更来更新索引;它能够检索文件、文件夹以及文件内容;它支持Word, Excel, PowerPoint, PDF, HTML, Word Perfect, text, ZIP文件, Outlook、Outlook Express、Eudora Mozilla Thunderbird这三种邮件客户端中的邮件和附件 以及超过150种其他文件格式,如MP3, JPG, WAV, MPEG。

 
桌面环境与桌面搜索Desktop Search tools

Locate32

这款不是很有名。它跟其他desktop search有一个本质的不同:它的索引是存放在数据库中。它使用数据库来存储目录结构信息,然后用于查询。

 
桌面环境与桌面搜索Desktop Search tools

Google Desktop Search

大名鼎鼎的Google Desktop Search是以侧边栏/小工具的形式呈现的,最新版的Google Desktop Search只要按两下Ctrl键就会弹极为简洁的搜索框。它不仅能够检索硬盘上的文件,还能搜索你的浏览器历史、GMAIL账户、Outloolk等等功能非常强大。它的所有配置、搜索结果都是以网页的形式呈现,必须通过浏览器来查看和设置。除了Windows版,它还支持MAC和Linux。下文也会提到。遗憾的是,google在2011年进行业务调整,停掉了Google Desktop Search项目。

 
桌面环境与桌面搜索Desktop Search tools

Everything

Everything是一款非常轻量的软件,他非常的小巧且提供绿色版下载。它能够快速的索引整个硬盘并提供可靠的文件检索。它只能支持NFS文件系统,只能检索文件名和目录名,不能检索文件内容。

 
桌面环境与桌面搜索Desktop Search tools

在Linux下,我们挑选了4款最流行的工具:分别是BeagleGoogle Desktop SearchTrackerRecoll

Beagle

特点:

  1. 默认索引home目录,可手动修改索引范围
  2. 提供命令行模式
  3. 除了浏览器的历史记录和书签,还能索引emails, IM, RSS readers, address book等等
  4. 内置文件系统监控模块,实时更新索引
  5. 能从以下类型文件中抽取text和meta 
    • Office docs, plain text, HTML, DocBook, image and audio formats…
  6. 能搜索文件内的terms, 不支持PDF
  7. 支持14中搜索主题,以改进搜索质量
    • Pictures, Media, Files, Archives, Mails …
  8. 支持丰富的查询表达式
    • 关键词前加-号,即结果中不出现与该关键字相关的记录
    • 使用OR定义查询
    • 限定搜索结果的时间

缺点:

消耗大量内存

2011年开始停止维护,最终版本3.3.2

 
桌面环境与桌面搜索Desktop Search tools

Google Desktop Search

前文已经介绍过了Windows版本Google Desktop Search, 此处再对它的特点进行一个总结。

特点

  1. 安装后自动开始建索引,不消耗系统资源
  2. 默认支持17种文件类型,其他文件类型需安装插件
  3. 可以检索浏览器历史和email账户
  4. 按两次Ctrl弹出快捷搜索框,实时显示部分搜索结果
  5. 参数的设置以及搜索结果的显示都在浏览器上完成
  6. 对于text和PDF文件,在搜索结果下会给出内容摘录

2011年9月,google业务调整,停止对其支持

桌面环境与桌面搜索Desktop Search tools

桌面环境与桌面搜索Desktop Search tools

Tracker

特点

  1. 不自动索引,不主动监控文件系统变更
  2. 能够配置想要忽略的文件路径或文件名模式
  3. 能够索引emails, 浏览器书签,历史,notes,tasks
  4. 搜索结果会被划分到不同的类别,可以查看指定类别的结果
  5. 单击搜索结果可以查看文件信息
  6. 支持给索引的文件添加标签,便于文件的访问
    • 这一功能非常不可靠,既是它的亮点,也是它最大的败笔,打相同标签的文件经常显示不全。
 
桌面环境与桌面搜索Desktop Search tools

Recoll

特点:

  1. 基于Xapian搜索引擎,需要xapian-core, Qmake和Qt库支持
  2. 不自动索引,点击File>update启动索引
  3. 支持Cron表达式,设置自动索引时间,安排索引计划。
  4. 默认索引home目录
  5. 可设置关键字过滤规则,规则有:
    • All of These, None of These, Any of These…(意思就是说,要检索时要考虑“所有的”、“这几个之外的”、“任意几个”关键字)
  6. 可指定搜索的文件类型
  7. 不主动监控文件系统变更,可在编译时recoll,添加监视模块
  8. 不支持所有文件类型,索引PDF,MP3,RTF, OFFICE.等文件需要安装额外的支持插件。

桌面环境与桌面搜索Desktop Search tools

上一篇:maven编译常见错误解决方法整理


下一篇:秒杀每日总结(12.1)