# OpenSearcher 开源的全文检索工具

**URL:** <https://meta.appinn.net/t/topic/38343>\
**Category:** 发现频道\
**Tags:** appinned, windows, 全文检索\
**Created:** [2022 年11 月 24 日 23:42 UTC](https://meta.appinn.net/t/topic/38343 "2022-11-24T23:42:04Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

作者： ![Gaoyongxian666](https://meta-edge.appinn.com/user_avatar/meta.appinn.net/gaoyongxian666/32/20850_2.png) [@Gaoyongxian666](https://meta.appinn.net/u/Gaoyongxian666)\
发布日期： [2022 年11 月 24 日 23:42 UTC](https://meta.appinn.net/t/topic/38343/1 "2022-11-24T23:42:04Z")

</div>

# OpenSearcher

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

## 文件类型

- `doc` Via [antiword](http://www.winfield.demon.nl/)
- `xls` Via [xlrd](https://github.com/python-excel/xlrd)
- `docx ` Via [docx2txt](https://github.com/ankushshah89/python-docx2txt)
- `xlsx` Via [xlsx2csv](https://github.com/dilshod/xlsx2csv)
- `pptx` Via [python-pptx](https://github.com/scanny/python-pptx)
- `mobi` Via [mobi](https://github.com/iscc/mobi)
- `epub` Via [ebooklib](https://github.com/aerkalov/ebooklib)
- `pdf` Via [pdfminer.six](https://github.com/pdfminer/pdfminer.six)
- `wps、et` Via [pywin32](https://github.com/mhammond/pywin32) By `WPS Office`
- `doc、xls、ppt` Via [pywin32](https://github.com/mhammond/pywin32) By `WPS Office` or `Microsoft Office`
- `Image Meta Data（EXIF, IPTC, XMP）` Via [pyexiv2](https://github.com/LeoHsiao1/pyexiv2) only `64-bit Machine`

## 使用提示

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

## 关于速度

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

## 关于项目

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

## 开源地址

- [GitHub - Gaoyongxian666/OpenSearcher: 一个基于PyQT5开源的、本地的、安全的、支持全文检索的搜索器。](https://github.com/Gaoyongxian666/OpenSearcher)

## 开发环境

- `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 第一次完成项目代码。

## 界面预览

 ![预览图](https://meta-edge.appinn.com/uploads/default/original/3X/7/f/7f148251f3bf6bfb2f919fe9a2f405278ae847f8.png)

 ![预览图](https://meta-edge.appinn.com/uploads/default/original/3X/9/a/9a82b03ef81702533701f7ac681f320b50ab5ee2.png)

 ![预览图](https://meta-edge.appinn.com/uploads/default/original/3X/7/f/7f148251f3bf6bfb2f919fe9a2f405278ae847f8.png)

## 文件下载

- 1.0.0.2

- [绿色版](https://gaoyongxian.lanzouy.com/iY3CB0ngj7ja)

- [安装包](https://gaoyongxian.lanzouy.com/ivG5O0ngjdvi)

- [Win7绿色版](https://gaoyongxian.lanzouy.com/iXKqZ0ngj3sf)

- [Win7安装包](https://gaoyongxian.lanzouy.com/izTgE0ngjaba)

- [Win7\_32位安装包](https://gaoyongxian.lanzouy.com/iLWC70ngjlbg)

- 百度网盘下载链接  
链接: [https://pan.baidu.com/s/1iiFdEUzlq85tpfZgrMdv-Q?pwd=6t85](https://pan.baidu.com/s/1iiFdEUzlq85tpfZgrMdv-Q?pwd=6t85) 提取码: 6t85 复制这段内容后打开百度网盘手机App，操作更方便哦

---

<div class="post-metadata">

作者： ![gezhong.vip](https://meta-edge.appinn.com/user_avatar/meta.appinn.net/gezhong.vip/32/13944_2.png) [@gezhong.vip](https://meta.appinn.net/u/gezhong.vip)\
发布日期： [2022 年11 月 27 日 04:20 UTC](https://meta.appinn.net/t/topic/38343/2 "2022-11-27T04:20:23Z")

</div>

可以可以

---

<div class="post-metadata">

作者： ![zyy](https://meta-edge.appinn.com/letter_avatar_proxy/v4/letter/z/50afbb/32.png) [@zyy](https://meta.appinn.net/u/zyy)\
发布日期： [2022 年11 月 27 日 09:51 UTC](https://meta.appinn.net/t/topic/38343/3 "2022-11-27T09:51:36Z")

</div>

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

---

<div class="post-metadata">

作者： ![Gaoyongxian666](https://meta-edge.appinn.com/user_avatar/meta.appinn.net/gaoyongxian666/32/20850_2.png) [@Gaoyongxian666](https://meta.appinn.net/u/Gaoyongxian666)\
发布日期： [2022 年11 月 27 日 10:55 UTC](https://meta.appinn.net/t/topic/38343/4 "2022-11-27T10:55:31Z")

</div>

你是不是已经运行了？

---

<div class="post-metadata">

作者： ![Gaoyongxian666](https://meta-edge.appinn.com/user_avatar/meta.appinn.net/gaoyongxian666/32/20850_2.png) [@Gaoyongxian666](https://meta.appinn.net/u/Gaoyongxian666)\
发布日期： [2022 年11 月 27 日 10:56 UTC](https://meta.appinn.net/t/topic/38343/5 "2022-11-27T10:56:45Z")

</div>

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

---

<div class="post-metadata">

作者： ![hapocn](https://meta-edge.appinn.com/letter_avatar_proxy/v4/letter/h/bc79bd/32.png) [@hapocn](https://meta.appinn.net/u/hapocn)\
发布日期： [2022 年11 月 27 日 11:51 UTC](https://meta.appinn.net/t/topic/38343/6 "2022-11-27T11:51:01Z")

</div>

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

---

<div class="post-metadata">

作者： ![Gaoyongxian666](https://meta-edge.appinn.com/user_avatar/meta.appinn.net/gaoyongxian666/32/20850_2.png) [@Gaoyongxian666](https://meta.appinn.net/u/Gaoyongxian666)\
发布日期： [2022 年11 月 28 日 16:27 UTC](https://meta.appinn.net/t/topic/38343/7 "2022-11-28T16:27:20Z")

</div>

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

---

<div class="post-metadata">

作者： ![hapocn](https://meta-edge.appinn.com/letter_avatar_proxy/v4/letter/h/bc79bd/32.png) [@hapocn](https://meta.appinn.net/u/hapocn)\
发布日期： [2022 年11 月 29 日 04:14 UTC](https://meta.appinn.net/t/topic/38343/8 "2022-11-29T04:14:57Z")

</div>

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

---

<div class="post-metadata">

作者： ![hapocn](https://meta-edge.appinn.com/letter_avatar_proxy/v4/letter/h/bc79bd/32.png) [@hapocn](https://meta.appinn.net/u/hapocn)\
发布日期： [2022 年11 月 29 日 09:39 UTC](https://meta.appinn.net/t/topic/38343/9 "2022-11-29T09:39:07Z")

</div>

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

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

---

<div class="post-metadata">

作者： ![Gaoyongxian666](https://meta-edge.appinn.com/user_avatar/meta.appinn.net/gaoyongxian666/32/20850_2.png) [@Gaoyongxian666](https://meta.appinn.net/u/Gaoyongxian666)\
发布日期： [2022 年11 月 30 日 09:35 UTC](https://meta.appinn.net/t/topic/38343/10 "2022-11-30T09:35:41Z")

</div>

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

---

<div class="post-metadata">

作者： ![hapocn](https://meta-edge.appinn.com/letter_avatar_proxy/v4/letter/h/bc79bd/32.png) [@hapocn](https://meta.appinn.net/u/hapocn)\
发布日期： [2022 年11 月 30 日 09:48 UTC](https://meta.appinn.net/t/topic/38343/11 "2022-11-30T09:48:16Z")

</div>

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

---

<div class="post-metadata">

作者： ![Qingwa](https://meta-edge.appinn.com/user_avatar/meta.appinn.net/qingwa/32/58632_2.png) [@Qingwa](https://meta.appinn.net/u/Qingwa)\
发布日期： [2022 年12 月 1 日 04:43 UTC](https://meta.appinn.net/t/topic/38343/12 "2022-12-01T04:43:57Z")

</div>

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

另外我这会闪退啊

---

<div class="post-metadata">

作者： ![Gaoyongxian666](https://meta-edge.appinn.com/user_avatar/meta.appinn.net/gaoyongxian666/32/20850_2.png) [@Gaoyongxian666](https://meta.appinn.net/u/Gaoyongxian666)\
发布日期： [2022 年12 月 1 日 05:10 UTC](https://meta.appinn.net/t/topic/38343/13 "2022-12-01T05:10:44Z")

</div>

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

---

<div class="post-metadata">

作者： ![Gaoyongxian666](https://meta-edge.appinn.com/user_avatar/meta.appinn.net/gaoyongxian666/32/20850_2.png) [@Gaoyongxian666](https://meta.appinn.net/u/Gaoyongxian666)\
发布日期： [2022 年12 月 1 日 07:27 UTC](https://meta.appinn.net/t/topic/38343/14 "2022-12-01T07:27:26Z")

</div>

什么情况下出现的闪退？

---

<div class="post-metadata">

作者： ![Qingwa](https://meta-edge.appinn.com/user_avatar/meta.appinn.net/qingwa/32/58632_2.png) [@Qingwa](https://meta.appinn.net/u/Qingwa)\
发布日期： [2022 年12 月 1 日 07:32 UTC](https://meta.appinn.net/t/topic/38343/15 "2022-12-01T07:32:43Z")

</div>

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

---

<div class="post-metadata">

作者： ![Gaoyongxian666](https://meta-edge.appinn.com/user_avatar/meta.appinn.net/gaoyongxian666/32/20850_2.png) [@Gaoyongxian666](https://meta.appinn.net/u/Gaoyongxian666)\
发布日期： [2022 年12 月 1 日 07:34 UTC](https://meta.appinn.net/t/topic/38343/16 "2022-12-01T07:34:59Z")

</div>

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

---

<div class="post-metadata">

作者： ![Qingwa](https://meta-edge.appinn.com/user_avatar/meta.appinn.net/qingwa/32/58632_2.png) [@Qingwa](https://meta.appinn.net/u/Qingwa)\
发布日期： [2022 年12 月 1 日 07:46 UTC](https://meta.appinn.net/t/topic/38343/17 "2022-12-01T07:46:46Z")

</div>

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

---

<div class="post-metadata">

作者： ![Gaoyongxian666](https://meta-edge.appinn.com/user_avatar/meta.appinn.net/gaoyongxian666/32/20850_2.png) [@Gaoyongxian666](https://meta.appinn.net/u/Gaoyongxian666)\
发布日期： [2022 年12 月 1 日 07:51 UTC](https://meta.appinn.net/t/topic/38343/18 "2022-12-01T07:51:35Z")

</div>

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

---

<div class="post-metadata">

作者： ![danvozhou](https://meta-edge.appinn.com/letter_avatar_proxy/v4/letter/d/58f4c7/32.png) [@danvozhou](https://meta.appinn.net/u/danvozhou)\
发布日期： [2022 年12 月 2 日 02:00 UTC](https://meta.appinn.net/t/topic/38343/19 "2022-12-02T02:00:23Z")

</div>

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

---

<div class="post-metadata">

作者： ![Gaoyongxian666](https://meta-edge.appinn.com/user_avatar/meta.appinn.net/gaoyongxian666/32/20850_2.png) [@Gaoyongxian666](https://meta.appinn.net/u/Gaoyongxian666)\
发布日期： [2022 年12 月 2 日 07:26 UTC](https://meta.appinn.net/t/topic/38343/20 "2022-12-02T07:26:13Z")

</div>

每次都是重新开启的

[下一页](https://meta.appinn.net/t/topic/38343.md?page=2)
