< 返回上级页面
模式表格的重新设计
DocFetcher Pro 建索引对话框上的模式表格和 DocFetcher Server 建索引面板上的模式表格与 DocFetcher 中的有以下不同:
- 除了正则表达式之外,您还可以使用功能较弱但更简单的通配符 * 和 ? 来编写匹配规则。通配符 * 是零个或多个字符的占位符,而通配符 ? 是恰好一个字符的占位符。
- 除了 "排除" 操作外,还新增了 "包含" 操作。
- "检测 mime 类型" 操作已被移除。如果您想将没有文件扩展名的文件作为文本文件建索引,请使用模式表格下方相同描述的复选框。
- 匹配可以是区分大小写或不区分大小写的。而在 DocFetcher 中,匹配总是区分大小写的。
- 匹配不仅可以对常规文件执行,还可以对文件夹和归档文件执行。
- 在 Windows 上,当规则与文件路径匹配时,后者将使用字符 \ 作为路径分隔符,而不是字符 /。例如:C:\路径\到\文件.docx,而不是 C:/路径/到/文件.docx。
因此,DocFetcher Pro 中的模式表格如下所示:

DocFetcher Server 中的模式表格看起来相同,但表格下方的 "选定模式匹配以下文件" 测试小工具当前不可用。 Server Not available in DocFetcher Server
点击此处查看关于 DocFetcher、DocFetcher Pro 和 DocFetcher Server 中模式表格的详细讨论。
以下是 DocFetcher Pro 和 DocFetcher Server 中模式表格重新设计的来龙去脉。让我们从头开始:在 DocFetcher 的建索引对话框上,有一个模式表格,用于在建索引期间对匹配特定模式的文件执行特定操作:

模式需要是所谓的正则表达式,至于操作,DocFetcher 中有两种可用:将匹配的文件排除在建索引之外,以及 "mime 类型检测",即尝试根据文件内容而不是文件名来猜测解析匹配文件的正确方式。到目前为止,一切都很好。但是,在实践中发现上述实现存在许多问题:
- 很少有人知道如何编写正则表达式。
- 有时人们只想对特定文件建索引,而不是将建索引时间浪费在其他任何文件上。例如,只对 "txt" 文件建索引,其他什么都不建。DocFetcher 实际上可以做到这一点,但这涉及一些相当高级的正则表达式技巧。
- 有时人们想要从建索引中排除所有匹配某个模式的文件,除了所有匹配某个其他模式的文件。例如,从建索引中排除所有 PDF 文件,除了名称以"报告_"开头的 PDF 文件。同样,在 DocFetcher 中这需要高级使用正则表达式。
- 一般来说,mime 类型检测相当无用,因为:(1) 文件扩展名几乎总是正确的,因此在大多数情况下这就是确定文件格式所需的全部。(2) 当文件扩展名不正确且需要 mime 类型检测时,后者实际上也不是特别可靠。(3) 没有人费心和/或知道如何为那些真正需要 mime 类型检测的罕见情况编写匹配规则。然而,在 DocFetcher 的上下文中,事实证明 mime 类型检测确实有一个重要的用例:让程序将没有文件扩展名的文件视为纯文本文件,例如名为 README 的文件。然而然而,要做到这一点,需要编写这个晦涩的正则表达式:[^.]*
- 如果文件包含一些二进制数据,mime 类型检测可能无法将文件识别为纯文本。
- 由于 DocFetcher 的便携版本必须在所有支持的平台上运行,当规则与文件路径匹配时,即使在 Windows 上,后者也总是使用字符 / 作为路径分隔符,这对大多数 Windows 用户来说是相当反直觉的。
长话短说,DocFetcher 的模式表格是一团糟,而随 DocFetcher Pro 一起进行的重写是清理所有这些问题的好机会:
- 添加了通配符并将其设置为默认值,这样现在即使是普通人也可以编写匹配规则。
- "包含"操作涵盖了只想对*特定*类型文件建索引的情况,以及想要为匹配规则定义例外的情况。现在甚至可以实现例外的例外。
- 普遍无用的"检测 mime 类型"操作被移除了,而其主要用例——将没有文件扩展名的文件作为文本文件建索引——由模式表格下方的一个简单复选框覆盖。即使文件包含一些二进制数据,此复选框也能工作。
- Windows 路径分隔符问题已修复。
- 为了更好的效果,还添加了一些其他功能(区分大小写和对文件/文件夹/归档的匹配)。
加载和保存建索引设置
注意:此功能目前仅在 DocFetcher Pro 中可用,DocFetcher Server 中不可用。 Server Not available in DocFetcher Server
问题所在:在 DocFetcher 中,每次创建新索引时,您都必须逐一在模式表格中输入所有规则。如果您有很多这样的规则,这会变得相当繁琐。根本没有办法加载和保存它们。

在 DocFetcher Pro 中,上述问题的解决方案如下:在 DocFetcher Pro 建索引对话框的右上角,有一个不起眼的小"带文档的罐子"按钮。点击此按钮会打开一个包含各种加载和保存建索引设置操作的菜单:

点击"保存设置"会打开此对话框:

本质上,您可以使用此对话框执行以下操作:将当前可见的建索引设置保存到一个新的命名槽位,例如"我的新建索引设置",或者将当前可见的建索引设置保存为新的默认设置。
此默认设置称为"自定义默认设置",在创建新索引时将自动加载。还有一个"出厂默认设置",这是 DocFetcher Pro 开箱即用的默认设置。您创建的命名设置,即"自定义默认设置"和"出厂默认设置",都可以通过上面显示的菜单加载。
最后,该菜单还允许您导入和导出所有建索引设置,以便在新环境中设置 DocFetcher Pro 时重复使用。
其他显著改进
FB2 支持:DocFetcher Pro 和 DocFetcher Server 支持电子书格式 FB2。Zip 压缩的 FB2 文件,文件扩展名为 fb2.zip 或 fbz,被"原生"支持,即 DocFetcher Pro 和 DocFetcher Server 将每个这样的文件视为单个文件,而不是包装在 zip 归档中的文件。
实验性 Mobipocket 支持:DocFetcher Pro 和 DocFetcher Server 支持电子书格式 Mobipocket,文件扩展名为 "mobi"。但是,请注意,虽然 DocFetcher Pro 和 DocFetcher Server 总体上在从 mobi 文件中提取文本方面做得相当好,但它们目前要么无法提取文件末尾的一小部分文本,要么在某些情况下完全失败。因此,Mobipocket 支持目前被标记为实验性的。
当前 v0.4 格式的 7z 归档支持:DocFetcher 可以读取 7z 归档格式的 v0.3 版本的 7z 归档。DocFetcher Pro 和 DocFetcher Server 还可以读取当前 v0.4 格式的 7z 归档。此 v0.4 格式是随 7-Zip 9.34 引入的,发布于 2014-11-23。
扩展的 tar 归档支持:DocFetcher 支持以下 tar 归档扩展名:tar、tar.gz、tgz、tar.bz2、tb2、tbz。DocFetcher Pro 和 DocFetcher Server 还额外支持以下 tar 归档扩展名:tbz2、tar.lzma、tlz、tar.xz、txz、tar.z、tz
对文件夹和归档名称建索引:与 DocFetcher 不同,DocFetcher Pro 和 DocFetcher Server 不仅对常规文件建索引,还对文件夹和归档文件建索引——更准确地说,是对文件夹和归档文件的名称建索引。因此,文件夹和归档文件将出现在 DocFetcher Pro 和 DocFetcher Server 的搜索结果中。在主应用程序窗口左侧还有一个容器类型面板,用于从搜索结果中排除文件夹和/或归档。

MacOS:自动索引更新的守护进程:DocFetcher 和 DocFetcher Pro 能够进行*自动*索引更新,即无需手动启动索引更新,一旦检测到文件更改,程序就会立即启动索引更新。但是,此功能仅在两个程序实际运行时才可用。当它们未运行时,需要一个单独的守护进程来填补空白。在 DocFetcher 中,守护进程仅在 Windows 和 Linux 上可用,而在 DocFetcher Pro 中,它在 macOS 上也可用。至于 DocFetcher Server,不需要守护进程,因为服务器被设计为连续运行。 Server Not available in DocFetcher Server
更智能的文件名建索引:DocFetcher Pro 和 DocFetcher Server 中的文件名建索引比 DocFetcher 中的更智能。例如,如果 DocFetcher 遇到名为 找到_这个_文件.pdf 的文件,它将"找到_这个_文件"视为单个单词,而不是三个串在一起的单独单词。因此,DocFetcher 只有在您在 DocFetcher 的搜索字段中按字面意思输入"找到_这个_文件"时才会找到此文件。另一方面,DocFetcher Pro 和 DocFetcher Server 如果您输入"找到_这个_文件"或三个单独单词中的任何一个,都会找到该文件。一般来说,DocFetcher Pro 和 DocFetcher Server 所做的是将下划线等字符识别为潜在的单词分隔符。

出错时的文件名建索引:如果 DocFetcher Pro 和 DocFetcher Server 由于某些错误或由于密码保护而无法读取文件内容,文件名仍会被建索引。另一方面,在 DocFetcher 中,文件会被完全跳过。
深度嵌套文件夹结构无错误:当尝试对深度嵌套的文件夹结构建索引时,例如 C:\文件夹1\文件夹2\...\文件夹99\文件夹100,DocFetcher 容易出现"文件夹层次结构太深"错误而失败。用程序员术语来说,这被称为"栈溢出"。另一方面,DocFetcher Pro 和 DocFetcher Server 对这类错误完全免疫。
建索引错误的 CSV 导出:在 DocFetcher Pro 中,您可以将程序在建索引期间无法读取的文件表导出到 CSV 文件。这可以通过错误表格的上下文菜单完成,如下面的屏幕截图所示。此功能目前在 DocFetcher Server 中不可用。 Server Not available in DocFetcher Server

无需重建索引即可开启和关闭文件夹监视:DocFetcher 的"监视文件夹以查找文件"设置,也称为文件夹监视,是一个按索引设置的选项,当开启时,程序会在检测到被建索引文件夹中的文件更改时自动更新索引。问题是,如果您想在特定索引上开启或关闭此设置,您必须重建整个索引。在 DocFetcher Pro 中,您可以无需重建索引即可开启和关闭此设置,通过搜索范围面板的上下文菜单。此外,该设置已重命名为"自动更新索引"。DocFetcher Server 中存在类似功能。

同时搜索和索引重建:在 DocFetcher 中,如果您选择重建索引,该索引在重建过程中将变为不可搜索。另一方面,在 DocFetcher Pro 和 DocFetcher Server 中,索引在重建期间仍可搜索。(更准确地说,索引的旧副本在实际索引在后台重建时仍可搜索。)
Windows:修复 UNC 路径处理:在 DocFetcher 中,Windows 上的 UNC 路径处理严重损坏,在 DocFetcher Pro 中从头重新设计。然后将重新设计移植到 DocFetcher Server。
非模态建索引对话框:与 DocFetcher 的建索引对话框相比,DocFetcher Pro 中的对话框是"非模态"的,这意味着它不附加到主程序窗口,并且在打开时不会阻止对主程序窗口的输入。这样做的主要好处是,在建索引过程运行时,您可以最小化主程序窗口,但保持建索引对话框可见并停靠在侧面。这允许您在其他应用程序中工作时密切关注建索引过程。此功能不适用于 DocFetcher Server。 Server Not available in DocFetcher Server

建索引后播放声音:默认情况下,DocFetcher Pro 在建索引后播放"完成"声音。这可以在首选项中关闭。此功能目前在 DocFetcher Server 中不可用。 Server Not available in DocFetcher Server

日文文本建索引:DocFetcher 有一个所谓的"分词"选项,用于在对中文文本建索引时获得可用的搜索结果。DocFetcher Pro 有一个额外的分词选项来处理日文文本。中文和日文分词目前在 DocFetcher Server 中都不可用。 Server Not available in DocFetcher Server