OpenSearcher 开源的全文检索工具

OpenSearcher

一个基于 PyQt5 本地的安全的开源的、支持全文检索的搜索器。本项目使用纯Python编写,所使用的第三方包都为开源库

文件类型

使用提示

  1. 利用空闲时间,提前建立索引缓存很重要,将大大加快之后的搜索。(本项目并没有强制要求建立索引缓存,还是由你自己决定是否建立索引缓存,如果你经常进行全盘随机搜索,推荐建立索引缓存)
  2. 如果搜索进行中,预览可能会卡顿。如果卡顿,请等待一下。(出现卡顿的原因是当前搜索速度过快加上用户频繁操作导致的Ui阻塞,通常情况不会出现这种卡顿)
  3. 第一次搜索某个文件目录时,搜索速度很慢,但是下次搜索相同目录将会很快。(原因就是第一次搜索的时候还没有建立索引缓存)
  4. 实际上索引缓存就是以文件的MD5值命名的Text文本文件,存放目录就在安装目录下的.temp文件夹下.(这意味这如果更新软件,你可以直接将.temp文件复制到新安装路径下,而不用耗费时间重新索引。)
  5. 搜索进行中,必须退出正在打开的word、excel、ppt文档,退出Microsoft OfficeWPS Office程序,因为本程序强行关闭Office可能会影响你的文档。(原因是当docxlsppt在经过antiwordxlrd处理失败后,将选择通过系统中的Office组件进行再处理)
  6. 搜索图像元数据pyexiv2不支持32位,请务必缩小搜索范围,最好选择具体的文件夹,因为Windows系统中图片太多,全盘搜索非常浪费时间。

关于速度

  搜索时间大部分都是消耗在第一次处理文件,也就是建立索引缓存那个过程。所以有时你在第一次搜索某个目录的时候感觉不是很快,但是如果你第二次搜索相同的目录将会很快。
原理是我在第一次处理文件时留下缓存文件,之后的搜索会根据文件md5值判断文件是否改变,如果文件内容没有改变直接读取缓存,如果文件内容改变将重新处理,这样就会大大提示搜索速度。
最后,推荐大家在空闲时间要提前建立索引,这样下次搜索会很快。

关于项目

  这实际上是一个仿照AnyTxT写的项目,只是因为AnyTxT不开源,由于保密原则,某些环境下无法使用,所以自己写了一个开源项目,如果你单位也有保密原则,不妨试试,本项目所有依赖和包都是开源的,你也可以查看项目代码,自行打包。 由于不太懂设计美化,但是项目里面界面都是.ui文件,如果有会qss美化的可以帮忙fork美化一下。

开源地址

开发环境

  • pip install -r requirements.txt

更新日志

  • 1.0.0.2
    • 2023.02.12 可以添加自定义类型格式。
  • 1.0.0.1
    • 2022.12.06 感谢 @JWL 反馈的部分未加try语句的代码导致软件崩溃问题,添加搜索信息等。
  • 0.0.9
    • 2022.12.05 添加读取图像元数据(EXIF, IPTC, XMP),添加更多文本格式,解决内存泄露导致的内存堆积,优化频繁启动Office的错误逻辑,提升速度等。
  • 0.0.8
    • 2022.12.02 感谢坛友 @doglove 提出的建议:修复Win7不能正常使用问题。(部分win7缺少dll、缺少补丁KB2533623)
  • 0.0.7
    • 2022.12.01 由于win32com在操作Office组件时可能会弹出不确定类型窗口阻塞,为此添加限制时间:在规定时间内用户没有响应Office提示窗口,将直接对当前文档报错并关闭Office,从而让程序能够继续往下处理。
  • 0.0.6
    • 2022.11.30 感谢坛友 @会飞的花 提出的建议:提高底部提示字号、添加目录黑名单。 感谢坛友 @hutuch 提出的建议:按照AnyTxt修改选择目录处理逻辑。
  • 0.0.5
    • 2022.11.28 感谢坛友 @会飞的花 提出的建议:取消强制设置桌面图标、记录上次搜索文件类型、记录上次窗体大小布局 ,新增ppt、pptx、epub、mobi文件类型、完善开机自启等。
  • 0.0.4
    • 2022.11.26 感谢坛友 @会飞的花 提出的建议:添加常用目录功能。
  • 0.0.3
    • 2022.11.24 修改部分bug。
  • 0.0.2
    • 2022.11.24 完善了一下代码,感谢坛友 @会飞的花 提出的建议:添加了记录字号、字体、换行、行号、上次搜索目录功能。
  • 0.0.1
    • 2022.11.20 第一次完成项目代码。

界面预览

文件下载

7 个赞

可以可以

感谢开发这个软件。遇到一个问题,win11 打开0.0.4绿色版后提示“open searcher已经在运行了”,请问怎么解决?

1 个赞

你是不是已经运行了?

还有一种很小的可能是你电脑装了和我设置了一样的端口的软件也在运行中

请问有32位版本吗,想在公司使用

我用32位python 打包了一下,你看看能否使用

谢谢.这几天在忙,过几天下载看看

中午试了一下,占用有点高,公司旧电脑不太适合.

而且索引至少要选一个磁盘,建议也可以设置常用文件夹,只索引常用文件夹的

刚我还更新了一下,发现你找的这个TextLocator比我写的这个要好,哈哈,我写的这个像缝合怪

你们才是大神,想要什么就自己动手做.
我只会用,哈哈

有个防火墙请求,是用来更新软件的么

另外我这会闪退啊

有日志我看看吗?防火墙我也不知道,我都是选否,要是说请求网络的话:使用了requests库,webbrowser库。

什么情况下出现的闪退?

绿色版闪退,安装版没发现。

绿色版是不是解压在了有空格的路径下

啊,我已经删掉了,日志在哪里看

就在按照目录下的logs文件夹

为什么要关闭Office,这个难道不是帮忙的吗?把正经干活的给关了。

1 个赞

每次都是重新开启的