如何创建 Gumroad 账户?
前往 gumroad.com 并点击右上角的 "Log in" 按钮。在接下来的页面上,点击页面顶部的 "Sign up" 链接。现在在页面下方的字段中填入您的电子邮件地址和密码,然后点击 "Create account" 按钮。
我购买了旧版本的 DocFetcher Pro 或 DocFetcher Server,在哪里可以下载最新版本?
要获取最新的发布文件,请使用购买 DocFetcher Pro 或 DocFetcher Server 时使用的 gumroad.com 账户登录。
如果您在购买时没有创建账户,您仍然可以事后创建账户,前提是您知道购买时使用的电子邮件地址。
登录账户后,点击左侧的 "Library" 将带您到在 Gumroad 上购买的产品列表。在这些产品中应该有 DocFetcher Pro 或 DocFetcher Server,点击这些产品将带您到最新的发布文件。
如果您在 Library 中没有看到 DocFetcher Pro 或 DocFetcher Server,您可能已经将它们 "archived"(归档)了。在这种情况下,您可以通过勾选 "Show archived only" 复选框来找回它们。
升级便携式 DocFetcher Pro 或 DocFetcher Server 时,如何保留我的设置和索引?
当从一个版本的便携式 DocFetcher Pro 或 DocFetcher Server 升级到更新版本时,不要将新版本直接解压覆盖旧版本。这会导致程序文件混乱,可能造成程序运行异常。以下是升级程序并同时保留设置和索引的正确方法:
- 将新程序版本解压到全新的位置。
- 仅将 conf 和 indexes 文件夹从旧程序文件夹复制到新程序文件夹。
- 将您手动修改的任何文件从旧程序文件夹复制到新程序文件夹。
注意:如果您使用的是非便携式DocFetcher Pro,那么在 Windows 上(仅在 Windows 上)您可以安全地将新程序版本安装到与现有版本相同的文件夹中(例如 C:\Program Files\DocFetcher Pro)。这是安全的,因为安装程序会在安装新版本之前自动删除现有版本。安装程序还会保留任何现有的设置和索引。在 Windows 以外的平台上,非便携式 DocFetcher Pro 必须解压到全新位置。然后它会重新使用您主文件夹中的任何现有设置和索引。
至于 DocFetcher Server,DocFetcher Server 的所有发布文件都是便携式的,因此上述便携式发布的升级程序适用。
如何将设置和索引从演示版转移到完整版?
DocFetcher Pro
如何将 DocFetcher Pro 演示版的设置和索引转移到完整版取决于您使用的 DocFetcher Pro 版本:
- Windows,非便携式(已安装):打开文件夹 C:\Users\[您的用户名]\AppData\Local 。在该文件夹中,您会找到一个名为 DocFetcher Pro Demo 的文件夹。通过选择它并按 Ctrl+C 然后 Ctrl+V 在同一位置制作副本。将副本重命名为 DocFetcher Pro。如果已经存在名为 DocFetcher Pro 的文件夹,则在重命名复制的文件夹之前将后者重命名为其他名称或删除它。
- Linux 和 macOS,非便携式:在您的主文件夹中,将文件夹 .docfetcherprodemo 重命名为 .docfetcherpro。如果已存在 .docfetcherpro 文件夹,请事先重命名或删除它。
- 任何平台,便携式:仅 将 conf 和 indexes 文件夹从演示版程序文件夹复制到完整版程序文件夹。
请注意,上述说明假设您希望将设置和索引从 非便携式 演示版转移到 非便携式 完整版,或从 便携式 演示版转移到 便携式 完整版。在 非便携式 和 便携式 之间转移也是可能的,基本上只需找到 conf 和 indexes 文件夹并将它们复制到正确的位置。
DocFetcher Server
要将设置和索引从 DocFetcher Server 演示版转移到完整版,仅 将 conf 和 indexes 文件夹从演示版程序文件夹复制到完整版程序文件夹。
如何更改索引的位置?
DocFetcher 有一个 misc/paths.txt 文件,允许自定义索引的位置。在 DocFetcher Pro 中,由于技术原因(即已知的错误和程序不稳定性),misc/paths.txt 文件已被移除且没有替代方案,因此无法通过这种方式重新定位索引。但是,仍有另一种方法:在 DocFetcher Pro 的便携版本中,索引位于程序文件夹内,这个文件夹可以自由移动。
至于 DocFetcher Server,它在所有平台上本质上都是一个便携式应用程序,因此要重新定位索引,您只需移动整个程序文件夹即可。
如何暂停和恢复索引?
在 DocFetcher Pro 和 DocFetcher Server 中都可以暂停和恢复索引,但功能可能不太明显:只需中止当前的索引进程。在索引创建和索引重建的情况下,您会被询问是保留还是放弃部分创建的索引。选择"保留"。当您想要恢复索引时,选择该部分索引并对其运行索引更新。应用程序可能需要一些时间来找到之前中止索引的位置。
为什么搜索查询 *狗*.pdf 不匹配预期的文件名?
假设您的索引文件中有一个文件"猫-狗-鼠.pdf"。输入搜索查询"*狗*.pdf"(不带引号),您期望应用程序找到文件"猫-狗-鼠.pdf",但它没有。要理解为什么,以及如何解决这个问题,需要对索引过程有更深入的理解。
首先,有一个应用程序范围的设置称为"分词"。它决定被输入到索引引擎的文本流如何被分割成单独的、可搜索的词。
分词设置的默认值称为"标准",对于您通常在用自然语言(如英语)编写的文档中找到的文本类型效果很好。"标准"分词在空格、连字符(即"-")和其他字符处分割文本。它不在点(".")或下划线处分割。
这种行为——特别是在连字符处分割——对文档文本有意义,但对文件名可能是反直觉的。在上面的例子中,文件名"猫-狗-鼠.pdf"会被分割成"猫"、"狗"和"鼠.pdf"。这就是为什么查询"*狗*.pdf"不匹配它的原因。
基本上有两种方法来解决这个问题:
1) 更改分词设置,具体来说改为"空格"。顾名思义,"空格"选项仅在空白字符处分割文本,不分割其他内容。因此,文件名"猫-狗-鼠.pdf"在传递给索引引擎时会保持完整。但是,更改分词可能对您的所有搜索产生重大且可能不理想的影响。此外,它需要重新构建所有索引。
2) 使用不同的搜索查询。在上面的例子中,以下查询会起作用:
- *狗*
- *鼠*.pdf
- "猫-狗-鼠.pdf"
此外,不带引号的查询"猫-狗-鼠.pdf"也会起作用。这是由于搜索引擎工作方式的另一个细节:不仅索引的文本,而且查询本身也使用选择的分词算法进行分割,在当前示例中结果是"猫"、"狗"和"鼠.pdf"。
最后,请注意在 UI 左侧有一个文档类型面板。与上述在搜索查询中包含文件扩展名的方法相比,该面板提供了一种更可靠的方法来将搜索范围缩小到特定文件类型。
DocFetcher Pro:索引后 GUI 仍然缓慢且无响应,我该怎么办?
有两个可能的原因:首先,偏好设置中的"边输入边搜索"选项可能严重影响性能。如果已启用,请尝试禁用它。
其次,您可能已经索引了一个或多个非常大的文件夹,这些文件夹在后台被频繁修改,触发 DocFetcher Pro 中的持续索引更新,从而使其变慢。在这种情况下,请尝试关闭所有索引的自动索引更新。要对单个索引执行此操作,请在搜索范围面板中右键单击它,并取消选中"自动更新索引"。或者,您可以通过使用 --disable-auto-index-update 参数启动程序来一次性禁用所有索引的自动索引更新。
用户手册中的"索引更新"页面解释了 DocFetcher Pro 的自动索引更新如何工作,以及当自动索引更新不可用时的替代方案。
DocFetcher Pro: 能否恢复 DocFetcher 的全局热键?
不可以,但有一个解决方案。背景信息:在 Windows 和 Linux 上,免费的 DocFetcher 有一个全局快捷键(默认为 Ctrl + F8)用于将程序窗口置于前台。这个功能没有被移植到 DocFetcher Pro,因为众所周知快捷键会导致稳定性问题。但是,可以使用额外的软件来模拟快捷键,如下所述。如何在 macOS 上模拟快捷键将不在此处解释,但可以使用 Automator 和 AppleScript 来完成。
在 Windows 上
- 从这里下载开源软件 AutoHotkey 并安装。之后,重启 Windows。
- 按 Windows 键 + R,输入 shell:startup,然后按 Enter。这会打开您的启动应用程序文件夹。
- 在该文件夹中右键并选择 New > AutoHotkey Script。给新的.ahk 文件命名,例如 DocFetcher Pro Hotkey.ahk。该.ahk 文件是一个脚本,将在每次 Windows 启动时运行。
- 右键单击.ahk 文件,然后选择 Edit Script。
- 将.ahk 文件中的所有文本替换为:
^F8::
if WinActive("DocFetcher Pro") {
WinMinimize, DocFetcher Pro
} else {
WinActivate, DocFetcher Pro
}
- 保存并关闭.ahk 文件。
- 重启 Windows。
- 从现在开始,您可以按 Ctrl + F8 将正在运行的 DocFetcher Pro 实例置于前台。按下 Ctrl + F8 后,您可以进一步按 Ctrl + F 来聚焦 DocFetcher Pro 中的搜索字段。如果在 DocFetcher Pro 已经是活动窗口时按 Ctrl + F8,它将被最小化。
- 上述.ahk 脚本中的 ^F8:: 行是将脚本绑定到 Ctrl + F8 快捷键的部分。对于其他快捷键,请参见 AutoHotkey 文档中的此页面。
- 要了解更多关于 AutoHotkey 的信息,请参见 AutoHotkey 文档,特别是教程。
在 Linux 上
- 安装 AutoKey。在基于 Debian 的发行版(如 Ubuntu)上,在终端中运行此命令:sudo apt install autokey-gtk
- 如果尚未安装,请安装以下依赖项:wmctrl 和 xdotool。
- 启动 AutoKey。
- 在 AutoKey 中,创建一个新脚本:File > New > Script
- 将以下代码粘贴到代码编辑器中:
output = system.exec_command("wmctrl -lx", getOutput=True)
if "DocFetcher Pro.DocFetcher Pro" in output:
winClass = window.get_active_class()
if winClass == "DocFetcher Pro.DocFetcher Pro":
system.exec_command("xdotool windowminimize $(xdotool getactivewindow)")
else:
system.exec_command("wmctrl -x -a "DocFetcher Pro.DocFetcher Pro"")
- 在代码编辑器下方,分配一个快捷键,例如 Ctrl + F8。
- 将 AutoKey 添加到您的启动应用程序中。您可以在 AutoKey 内执行此操作:Edit > Preferences > Automatically start AutoKey at login
- 保存脚本并关闭 AutoKey 窗口。它将在后台继续运行。
- 从现在开始,您可以按 Ctrl + F8 将正在运行的 DocFetcher Pro 实例置于前台。按下 Ctrl + F8 后,您可以进一步按 Ctrl + F 来聚焦 DocFetcher Pro 中的搜索字段。如果在 DocFetcher Pro 已经是活动窗口时按 Ctrl + F8,它将被最小化。
DocFetcher Server:为什么我无法从外部连接到我的 DocFetcher Server 实例?
假设您按照文档中的设置说明操作,并且已经成功运行 DocFetcher Server,可以在本地(即服务器机器上)通过类似这样的 URL 访问它:http://localhost:31190/
但是,当您尝试使用服务器机器的地址从外部访问它时,例如 http://192.255.234.105:31190/,您的浏览器只显示错误消息。
可能的解释:
- 如果您的服务器机器位于本地网络中并通过路由器连接到外部世界,您需要在路由器上设置端口转发。
- 对 DocFetcher Server 实例的访问可能被防火墙阻止。这可能是路由器中的防火墙、网络托管商的防火墙,或服务器机器本身的防火墙(例如 Windows 防火墙、UFW)。
DocFetcher Server: 为什么服务器按浏览器会话而不是 IP 地址计算用户数量?
计入 DocFetcher Server 实例的"客户端限制"的用户不是通过 IP 地址识别的,而是通过浏览器会话识别的。这具有以下非显而易见的含义:
- 从同一台计算机上的两个不同浏览器访问服务器 --- 计为 2 个用户。
- 从同一浏览器的私密和非私密标签页访问服务器 --- 计为 2 个用户。
从用户角度来看,这确实不太理想,因为从同一台计算机以多种方式访问服务器理想情况下应该被计为一个"席位"。然而,替代方案——按 IP 地址计数——在技术上是不可行的,因为 IP 地址通常不是识别用户的可靠方式。
特别是,如果两个用户从 NAT 防火墙或代理服务器后面访问服务器,被访问的服务器会看到两个用户具有相同的 IP 地址。因此,通过使用代理服务器可以轻易绕过 DocFetcher Server 的客户端限制。
有关 IP 地址与浏览器会话问题的扩展技术讨论,请参见 Stack Overflow 上的此页面和此页面。
DocFetcher Server 提供了一个称为"会话劫持"的变通方法,使在同一台计算机上的不同浏览器之间以及在不同计算机之间切换更加便利。"会话劫持"意味着当达到客户端限制时,新用户能够接管现有会话,从而将之前的拥有者踢出"网页界面"。预期用途是让用户踢出他们自己,以便更轻松地在浏览器和/或计算机之间切换。对于客户端限制大于 1 的 DocFetcher Server 实例,"会话劫持"默认处于关闭状态,必须在"管理区域"的"访问"选项卡中启用。
DocFetcher Server:在网页界面中,我可以直接打开搜索结果而不是下载它们吗?
简短回答:不可以,但有一个(稍显笨拙的)变通方法。
详细回答:出于安全原因,现代浏览器被设计为在沙盒中运行网页应用程序。DocFetcher Server 网页界面就是这样的网页应用程序,这就是为什么它无法访问浏览器外的本地文件系统并打开文件,而是让您下载它们。
变通方法:在网页界面中,将搜索结果的文件路径复制到剪贴板,然后将其粘贴到您的文件管理器或其他能够处理文件路径的应用程序中。例如,在 Windows 资源管理器中,您可以通过将文件路径粘贴到路径栏中来打开文件。
DocFetcher Server 有两个功能来支持这种文件路径的复制和粘贴。首先,在"管理区域"中,转到"其他"选项卡,然后在"点击搜索结果中的图标"设置处选择"复制路径"。这允许客户端通过点击搜索结果的图标来方便地复制文件路径。
其次,根据您的设置,DocFetcher Server 实例看到的文件路径可能与客户端看到的文件路径不完全相同。例如,DocFetcher Server 实例可能在 Linux 上运行并索引 /文件/路径 下的文件,而客户端可能在 Windows 上运行,看到索引文件位于挂载为 X:\ 的网络驱动器上。解决这种路径不匹配的方法:在"管理区域"中,转到索引选项卡,选择一个索引,然后点击索引表下的"客户端路径"按钮,然后输入要向客户端显示的自定义路径。对每个受影响的索引都要这样做。
您是否有针对各种 DocFetcher 产品计划的功能路线图?
没有路线图,只有堆积如山的功能请求和对项目未来可能发展方向的模糊想法。多年的 DocFetcher 经验表明,具体的功能计划很少能够实现,通常是由于纯粹的技术困难和/或因为太多其他功能也在争夺开发者的注意力。
例如,DocFetcher 的网页界面早在 2008 年就被"计划",但直到 2022 年 DocFetcher Server 1.0 才在经过整整一年的开发后问世。
我可以退还我的购买吗?
请参见"退款政策"。