Everything和Windows搜索是有区别的,以下列几点:

1. Everything只能搜索文件名和文件夹名,Windows搜索可以搜索文件名和文件内容;
2. Everything只能搜索NTFS格式的文件系统,Windows搜索可以搜索任意文件系统(例如FAT32,exFAT,NTFS);

但有时我们需要的恰好就是快速搜索文件名,那么Everything的工作原理是如何呢?
先简单介绍一下NTFS的两个功能,MFT和USN journal。

Master File Table (MTF)
在NTFS文件系统中,有一个特殊的表,称为MTF表。所有文件夹和文件的名称都被存储在该表中,访问该表的速度非常快,使应用程序可以不遍历文件系统就能获取当前卷(磁盘)中的所有文件的名称和路径。

USN journal
NTFS还有一个日志功能。所有对文件系统有修改的操作都被记录在了一个journal日志文件中。

Everything的原理
程序启动时,扫描系统所有NTFS卷(磁盘)的MTF表,将文件名称以一种利于字符串检索的算法形式存储在Everything的index索引数据库中。

系统运行过程中,Everything还会监控NTFS卷的journal日志文件,如果文件系统中的文件发生改变,Everything会更新它的index索引数据库。

当用户搜索文件时,Everything利用字符串查找算法,在index索引数据库中查找,可以直接搜索到文件。

那么,现在回答题主问题。
Q:Search Everything 这款软件如何做到如此快速的搜索的?
A:因为Everything在搜索时,根本没有遍历文件系统,它检索的是自己组织好的索引数据库,因此搜索速度飞快;

Q:Windows搜索时什么原理?
A:Windows搜索用的是普通的文件系统遍历查找。用的应该是标准WIN32 API,例如FindFirstFile/FindNextFile之类。当然,Windows7之后的版本现在已经内置带索引的搜索功能,这项功能非常复杂,不仅可以搜索文件名,还可以搜索文件内容,而且适用任意文件系统。但缺点就是需要一个后台服务爬虫不停的对文件系统进行索引,比较耗资源。

Q:为何微软不使用这种原理?
A:个人觉得是因为这种方法不具备普适性,无法应用与非NTFS文件系统,所以无法集成到Windows中。

Q:为何微软不收购这家公司?
A: 个人感觉还是技术含量不太高,而且微软自家的ActiveDirectory早就在使用MTF快速检索文件了。

文章转自:Everything Search Engine这款软件如何做到如此快速的搜索的

Everything Search Engine这款软件如何做到如此快速的搜索的相关推荐

  1. Fluent Search,一款让Windows效率起飞的软件

    前言 我们在使用电脑时,无时无刻不需要查找内容比如找应用.文档.视频.网站甚至是页面中的按钮等等 虽然凭借记忆也可以很快找到它们,但也有很多是一时半会找不到的 这种情况便需要用到搜索功能来快速定位它们 ...

  2. 学计算机可以拦截手机软件,堪称神器!这几款软件让你的手机变电脑!

    原标题:堪称神器!这几款软件让你的手机变电脑! PC时代,QQ的远程操作确实非常好用,对于你控制电脑来说变成一个相对来说很简单的事情,但是,如果你想要用手机控制电脑呢!某些外国开发的软件说实话都是英文 ...

  3. Lotus.Engine.Simulation.v5.06f 1CD(PC平台上用于模拟发动机运行表现的一款软件)

    Lotus Engineering Software产品: Lotus.Base.Engine.Analysis.Tools.v4.02g 1CD(发动机制造前的理论性研究分析工具) Lotus.Co ...

  4. 盘点俄罗斯程序猿写的几款软件,你用过几个?最后1个是我的童年

    1. 7zip 7-Zip 作者:abhishek prakash,是一款 开源 的 免费 软件.大多数源代码都基于 GNU LGPL 许可协议下发布.部分代码基于 BSD 3 句条款(BSD 3-c ...

  5. Mac软件推荐|Mac资深用户必备11款软件

    Mac有哪些必备软件?macw小编整理了11款Mac电脑装机必备软件,每一款都很实用哦!一.Permute它用于格式转换,包括视频.音频,图片乃至pdf,不仅效率高,而且完美配合downie.iTun ...

  6. 盘点俄罗斯写的几款软件,你用过几个?最后一个是我的童年

    1. 7zip 7-Zip 作者:abhishek prakash,是一款 开源 的 免费 软件.大多数源代码都基于 GNU LGPL 许可协议下发布.部分代码基于 BSD 3 句条款(BSD 3-c ...

  7. SEM(Search Engine Marketing)–

    SEM(Search Engine Marketing)–搜索引擎营销又称PPC(Pay Per Click),是搜索引擎的竞价排名广告推广.而搜索引擎营销越来越成为网络营销的重要一员,竞价排名广告为 ...

  8. 4 年开发 43 款软件,这位乡村教师火了

    整理 | 王晓曼 出品 | 程序人生 (ID:coder _life) 今天,一则#乡村教师自学编程4年开发43款软件#的话题冲上微博热搜.主人公彭龙是四川泸州一名乡村数学教师,4年多来他自学编程,开 ...

  9. 推荐几款软件和几个网站

    分类: IT-起航 2011-06-11 15:18 6人阅读 评论(0) 收藏 举报 原文出处:http://blog.csdn.net/jj12345jj198999/archive/2011/0 ...

最新文章

  1. 文武双全,AI 女神们的修炼手册!
  2. JVM基础系列第7讲:JVM 类加载机制
  3. 数据库事务的隔离级别 (转)
  4. Visual Assist x 无法自动补全Snippet提示的解决方法
  5. JAVA8 获取叶节点_Java找出所有的根节点到叶子节点的节点值之和等于sum 的路径...
  6. python教程5小时完整版_Python零基础入门教程5小时完整版(北京理工大2020年版)
  7. sql OFFSET 和 ORDINAL
  8. oracle 统计分析 dic,数据库优化之统计分析实战篇
  9. GoJs Pictures 官方介绍文档
  10. oracle快捷语句框架中,Oracle框架:PL/SQL编程:
  11. Android轻松实现语音识别
  12. ubuntu 12.04 以固定 IP 地址连接网络并配置DNS
  13. 分享三:mysql跨库查询
  14. Linux中svn提交文件后自动同步更新到网站目录
  15. 综合应用WPF/WCF/WF/LINQ之二十九:代码生成器之DBMLToCode
  16. potplayer直播源模板
  17. 一种身份证号码的编码压缩方法
  18. java hook api 实现封包截取_hook 封包 截取WSASend实例
  19. 中兴ZXV10 H608B无线MODEM开路由自动拨号上网设置
  20. 移动云迁移工具:Hyper-V虚拟化迁移到移动云

热门文章

  1. 北大计算机学霸,国内大学“最牛的”一个班级,门槛极高,一般学霸根本进不去...
  2. 利用OpenStreetMap决定GPS点所在的道路类型
  3. matlab spc,SPC563M60L5 - 用于汽车动力系统应用的32位Power Architecture MCU - STMicroelectronics...
  4. 令容智慧燃气解决方案有效提高燃气管控
  5. 利用Unity LineRender组件,复刻H5页面的绚烂Cavans点线动画(带鼠标交互)
  6. python程序设计清华大学出版社答案_Python程序设计-清华大学出版社-董付国第1章基础知识.ppt...
  7. Android 加载串口通信读取信息时 AndroidStudio loadLibrary失败
  8. 以数据中台为“发动机”,易观方舟5.0的全新蜕变
  9. 谷歌搜索技巧大全 | 谷歌高级搜索语法指令
  10. 联想电脑为什么合盖和按电源键不睡眠