muyuzhth0 发表于 2023-2-4 14:56:49

全文搜索工具searchIntxt

本帖最后由 muyuzhth0 于 2023-2-4 15:04 编辑

一、前言
本人使用mdict、goldendict多年,自己也做过一些词库,目前还在使用goldendict,受益颇多。这两款词典的优点很多,我也就不多说了,但是仍然满足不了我的一些需求。
本人收集了很多很多很多pdf、word文档资料。如何在这些资料中快速找到自己需要的信息呢?
例如:在3万多文件中,全文搜索“表见代理”,找到427个文件,在这427个文件范围内全文搜索“除斥期间”,找到21个文件,在这个21个文件中全文搜索“起算”……
mdict、goldendict难以胜任这个工作。全文搜索工具有好多,不乏Archivarius 3000、anyTXT等神器,不过各有优缺点(全文搜索工具对比介绍),也不能满足我的需求。
以前写过简单的程序用来搜索pdf或者word文档。但是程序会有一个提取pdf(word、excel)文档字符的过程,并且每次搜索都要重新提取。这个过程非常耗时,于是放弃了。
因为不会制作索引,又因为我的资料库几乎每天都在增加新内容,所以本人这次采取的方式是将资料库中的pdf(word、excel)文档转换为txt格式的文档(可能相当于山寨版的索引吧),然后在txt文档中搜索需要的信息。如果检索到,则说明相同文件名的pdf(word、excel)文档中有相同的信息,配合“everything”神器,打开查阅即可。
二、搜索效率测试
仅支持64位windows系统,在win7、win10上测试过,可用,未报错。

程序和文档全部在u盘里,3.2万+个文档。

使用regex搜索“.{0,50}表见代理.{0,50}”,耗时70.44秒。

不使用regex搜索“表见代理”,耗时29.12秒。

三、程序主要特色
1.支持在搜索结果范围内继续搜索,不断缩小搜索范围。
2.支持文件名和文件全文两个关键词的同时匹配。
3.支持正则表达式或非正则表达式两种搜索模式。使用正则表达式时,支持显示详细信息。
4.支持搜索记录导出。
5.根据需求,手动转换所需文件转换为txt文档,不强制建立索引文件。
好了,如果你有相似使用情形,且对搜索效率满意,也没有什么更好的其他软件可选择(如果有,告诉我),那么接着往下看。
四、功能介绍

rootdir:点击这个button,选择搜索的路径(包括子目录中的文档)。
keyword(in filename):设置搜索文件名中的关键字。这一步速度超快,如果知道文件名中的必包含的关键字,设置后会缩小文档搜索的数量。设置为“txt”表示在所有txt文档中搜索,因为每个txt文档的文件名都包含“txt”,当然也可以设置为空。
keyword(in txt):设置搜索txt文档内容中的关键字。
use regex(details):是否使用正则表达式搜索(使用正则表达式搜索,支持显示搜索到的详细信息)。
绿色进度条:显示程序转换txt或搜索进度。
convert to txt:将选择的路径下的所有pdf(word、excel)文档转换为txt(编码:utf-8-sig)文档,并保存在相同路径下。支持*.pdf、*.doc、*.docx、*.xls、*.xlsx格式,文档中的图片内容无法提取。首次使用或者文档有增加、修改时,需要使用此功能。转换效率测试:335个文件,耗时290.41秒。
search in rootdir:顾名思义,点击这个button,每次都会在搜索路径下检索信息。例如:选择某个目录,包含3.2万+txt文档,搜索“表见代理”,找到427个文档。如果换其他关键词搜索,搜索范围仍然是目录下的3.2万+文档。
search in results:点击这个button,每次将在上一次检索到的文档范围内搜索,搜索后不缩小搜索范围。接上例,想在这427个文档中找包含“最高法”或者“最高人民法院”或者其他关键词的文档,首先搜索“最高法”,点击“search in results”,找到0个,那么再试试输入“最高人民法院”, 点击“search in results”,程序仍然会在427个文档的范围内搜索,如果没找到,可以再换其他的关键词……
search recursively:点击这个button,用来确认、缩小搜索范围。接上例:在427个文档中搜索到50个包含“最高人民法院”的文档,如果想在这个50个文档的范围内搜索其他关键词,先点击“search recursively”后,程序会修改搜索范围至这50个文档,接下来再使用“search in results”尝试搜索“驳回”、“除斥期间”等不同的关键词,找到想要的文档范围后,再点击“search recursively”来确认缩小搜索范围……两个button循环使用,直到找到符合要求的结果。
貌似逻辑运算或者正则表达式也能够实现这个搜索目的,但是这么搜索逻辑上更简单,搜索结果也更清晰,细品,还是有不少区别的。
可能你还不明白……不要紧,我表达能力有问题,一共没有几个button,结合需求,稍微试试就知道他们的区别了。
中间显示区:显示程序运行信息。
底部提示:不使用正则表达式或使用正则表达式时关键字用法和示例的简单介绍。

bookrain 发表于 2023-2-4 20:05:24

感恩分享~
另外,请教Archivarius为何不能满足阁下的需求呢?

dliaas 发表于 2023-2-5 03:40:16

多谢!!

muyuzhth0 发表于 2023-2-5 09:48:41

bookrain 发表于 2023-2-4 20:05
感恩分享~
另外,请教Archivarius为何不能满足阁下的需求呢?

好像不支持正则表达式,也不支持文件名、文件内容双重筛选,逐步缩小搜索范围。

shuitu 发表于 2023-2-5 13:13:46

要先把PDF转成txt,这个不但工作量巨大,而且准确率不会令人满意。如果已经都转成了txt,那么,filelocator不就能满足你的要求吗?

muyuzhth0 发表于 2023-2-5 17:34:03

shuitu 发表于 2023-2-5 13:13
要先把PDF转成txt,这个不但工作量巨大,而且准确率不会令人满意。如果已经都转成了txt,那么,filelocator ...

工作量肯定不小。一般情况下,平均每个pdf的转换时间低于1秒。我检查了下,准确率还是不错的。没用过filelocator,不好评价。好在会写点程序,自己写程序,更符合自己的需求。

muyuzhth0 发表于 2023-2-5 17:37:44

muyuzhth0 发表于 2023-2-5 17:34
工作量肯定不小。一般情况下,平均每个pdf的转换时间低于1秒。我检查了下,准确率还是不错的。没用过file ...

不过,其他全文搜索工具建立索引也需要时间,只是比我技术高,可能时间相对少点。各取所取吧。

每天吃肉 发表于 2023-2-5 18:14:28

谢谢楼主,您遇到的问题也是我一直想解决的,但我是程序小白,只能等大侠们的作品,好多年了。
希望您的工具有效,祝您元宵节快乐。

muyuzhth0 发表于 2023-2-5 18:29:01

每天吃肉 发表于 2023-2-5 18:14
谢谢楼主,您遇到的问题也是我一直想解决的,但我是程序小白,只能等大侠们的作品,好多年了。
希望您的工 ...

技术有限,有bug或者其他好的想法,给我留言或者Email,能力之内,尽量更新。

muyuzhth0 发表于 2023-2-5 18:30:59

muyuzhth0 发表于 2023-2-5 17:34
工作量肯定不小。一般情况下,平均每个pdf的转换时间低于1秒。我检查了下,准确率还是不错的。没用过file ...

这也是个pdf(word、excel)文档转换为txt的工具……

每天吃肉 发表于 2023-2-5 18:35:43

muyuzhth0 发表于 2023-2-5 18:29
技术有限,有bug或者其他好的想法,给我留言或者Email,能力之内,尽量更新。 ...

楼主哥,txt文件的编码必须要utf-8吗?ansi的是不是就不可以啊?

muyuzhth0 发表于 2023-2-5 18:41:38

每天吃肉 发表于 2023-2-5 18:35
楼主哥,txt文件的编码必须要utf-8吗?ansi的是不是就不可以啊?

是的。必须utf-8-sig(有签名)。因为以前制作mdx词典,发现utf-8-sig这个编码支持的字符比较多,所以放弃了ansi。如果您有很多ansi编码的txt文档,可以使用emeditor转换,很方便。

每天吃肉 发表于 2023-2-5 19:00:33

muyuzhth0 发表于 2023-2-5 18:41
是的。必须utf-8-sig(有签名)。因为以前制作mdx词典,发现utf-8-sig这个编码支持的字符比较多,所以放 ...

谢谢楼主大哥热情指点。等空下来,我再试试。

leoleo2100 发表于 2023-2-9 16:44:36

第一,对lz这个问题,可以去52pojie论坛看看。针对检索来说,有一个软件,FileLocator Pro非常不错。
这个软件用了好多年了,也经常需要在一些pdf和word文件,包括excel文件,本地mht文件里面,按关键字找东西。这个软件就可以做到。

第二,还有一个问题,pdf文件的检索,需要区分pdf文件是否是可编辑的类型。
1,可编辑的pdf文件,(也有人叫文字型pdf)
2,不可编辑的pdf文件,(也有人叫图片型pdf)
对于不可编辑的pdf,需要先转化成可编辑的pdf。软件工具很多,最有名的是ABBYY的finereader,其他的比如迅捷。我的经验是,中文的pdf(包括夹杂中英文的),用迅捷的效果更好,可以做成双层的PDF。

第三,看你的帖子,在检索pdf时,对不可编辑pdf有一个转化的过程,(你把它称为“提取文字”)。这个转换的功能(或操作),包括在检索软件里面不太合适。原因你也说了,会导致重复操作。
比如,你每一次检索,都需要转换(你所谓的”提取文字“),这个操作很费时间,而且,提取有没有保留呢?下一次当你检索pdf,又需要提取一次吗?
因此,比较好的方法是,对于“不可编辑的pdf”,实现转成可编辑的pdf。可以在电脑里面保存两份,一份是原始pdf,一份是转换(或提取文字的txt或pdf),或者干脆搞成双层pdf。

muyuzhth0 发表于 2023-2-10 06:12:20

leoleo2100 发表于 2023-2-9 16:44
第一,对lz这个问题,可以去52pojie论坛看看。针对检索来说,有一个软件,FileLocator Pro非常不错。
这个 ...

多谢提示!我试试FileLocator Pro
我表达的可能不清楚,我写的这个程序,不支持图片类型的pdf文件。另外,word、excel、PDF都是先转换为txt格式,之后就不用再转换了。

muyuzhth0 发表于 2023-4-5 09:33:28



使用了一段时间,收集了部分反馈意见,对程序进行了完善。

######20230320
增加批量搜索(仅支持正则表达式模式)
增加设置最大显示数量
增加工具提示、快捷键
增加搜索前是否忽略字符功能
修正正则表达式搜索不到制表符的问题
修正非正则搜索时逻辑或无效的问题
优化显示区域的行间距、字号、突出显示效果
优化xlsx转txt、doc转txt

hzsfxy 发表于 2023-4-5 10:56:06

一直用accelon3

muyuzhth0 发表于 2023-4-5 14:26:31

hzsfxy 发表于 2023-4-5 10:56
一直用accelon3

如果有改进意见,欢迎留言。

kjcqs 发表于 2023-4-17 01:57:15

感谢分享!
页: [1]
查看完整版本: 全文搜索工具searchIntxt