|
本帖最后由 muyuzhth0 于 2023-2-4 15:04 编辑
% D/ q# x1 n; n7 S
, k5 b2 g' F6 b" {% L) _一、前言- q$ P) p. F5 N; [* V8 L
本人使用mdict、goldendict多年,自己也做过一些词库,目前还在使用goldendict,受益颇多。这两款词典的优点很多,我也就不多说了,但是仍然满足不了我的一些需求。% j6 r' Q6 U6 y" z& {% ~' j
本人收集了很多很多很多pdf、word文档资料。如何在这些资料中快速找到自己需要的信息呢?3 ?4 w" U9 G; z0 t8 o
例如:在3万多文件中,全文搜索“表见代理”,找到427个文件,在这427个文件范围内全文搜索“除斥期间”,找到21个文件,在这个21个文件中全文搜索“起算”……. s, k" T% \- L3 l( e9 ~
mdict、goldendict难以胜任这个工作。全文搜索工具有好多,不乏Archivarius 3000、anyTXT等神器,不过各有优缺点(全文搜索工具对比介绍),也不能满足我的需求。
+ g; _7 O5 z2 M以前写过简单的程序用来搜索pdf或者word文档。但是程序会有一个提取pdf(word、excel)文档字符的过程,并且每次搜索都要重新提取。这个过程非常耗时,于是放弃了。
8 ~: W3 K7 j' P0 w4 i2 T因为不会制作索引,又因为我的资料库几乎每天都在增加新内容,所以本人这次采取的方式是将资料库中的pdf(word、excel)文档转换为txt格式的文档(可能相当于山寨版的索引吧),然后在txt文档中搜索需要的信息。如果检索到,则说明相同文件名的pdf(word、excel)文档中有相同的信息,配合“everything”神器,打开查阅即可。8 @& b# I0 x m' U, B( b
二、搜索效率测试
/ o' C# U; b# k# }& M, a) ~2 v; _仅支持64位windows系统,在win7、win10上测试过,可用,未报错。- B% l) f ^6 F6 ]- {
' C. O2 D1 ^ j- V* Z$ Q2 a程序和文档全部在u盘里,3.2万+个文档。. t" Y4 _. B5 p6 p7 p; F& Q. A* f
" F$ t' y" b2 a0 j; r" j3 W使用regex搜索“.{0,50}表见代理.{0,50}”,耗时70.44秒。
3 `& B. c" g: h3 |6 v: V F
7 f0 l+ \ Q; v+ V9 _不使用regex搜索“表见代理”,耗时29.12秒。
& \' L3 t P/ }( u, c+ f
' m0 }- C* r! Z6 C三、程序主要特色
) n# D+ Z: T0 a$ B6 ~! L1.支持在搜索结果范围内继续搜索,不断缩小搜索范围。
: K2 ^- t' O8 t) u8 s8 [2.支持文件名和文件全文两个关键词的同时匹配。
0 ?6 w6 c0 K3 n$ P) I3.支持正则表达式或非正则表达式两种搜索模式。使用正则表达式时,支持显示详细信息。
9 I% R0 }+ d9 ?4.支持搜索记录导出。/ A# \+ }+ {+ P1 d% [+ ^+ p3 D
5.根据需求,手动转换所需文件转换为txt文档,不强制建立索引文件。
& h [: {- }( O* o! d% R6 l1 {好了,如果你有相似使用情形,且对搜索效率满意,也没有什么更好的其他软件可选择(如果有,告诉我),那么接着往下看。
$ g7 i& d! M5 i+ P4 C( E" I四、功能介绍
% ]1 k3 o. O& F7 w. }5 Y" t
1 W' D: O D+ }- @5 C( F Arootdir:点击这个button,选择搜索的路径(包括子目录中的文档)。
) E p& ]( p* T! M# A7 @keyword(in filename):设置搜索文件名中的关键字。这一步速度超快,如果知道文件名中的必包含的关键字,设置后会缩小文档搜索的数量。设置为“txt”表示在所有txt文档中搜索,因为每个txt文档的文件名都包含“txt”,当然也可以设置为空。
0 q* t6 ~6 H5 g! P) x7 `, b; ?keyword(in txt):设置搜索txt文档内容中的关键字。( w5 _, E4 _, S% Z9 n/ R7 j! z
use regex(details):是否使用正则表达式搜索(使用正则表达式搜索,支持显示搜索到的详细信息)。
. _% k, d( k3 X w0 B" a绿色进度条:显示程序转换txt或搜索进度。 k% K, g* L$ a/ S% ?
convert to txt:将选择的路径下的所有pdf(word、excel)文档转换为txt(编码:utf-8-sig)文档,并保存在相同路径下。支持*.pdf、*.doc、*.docx、*.xls、*.xlsx格式,文档中的图片内容无法提取。首次使用或者文档有增加、修改时,需要使用此功能。转换效率测试:335个文件,耗时290.41秒。
0 ~1 k/ a+ m3 I8 Z! `8 msearch in rootdir:顾名思义,点击这个button,每次都会在搜索路径下检索信息。例如:选择某个目录,包含3.2万+txt文档,搜索“表见代理”,找到427个文档。如果换其他关键词搜索,搜索范围仍然是目录下的3.2万+文档。6 f/ @: X. m+ W/ F8 n
search in results:点击这个button,每次将在上一次检索到的文档范围内搜索,搜索后不缩小搜索范围。接上例,想在这427个文档中找包含“最高法”或者“最高人民法院”或者其他关键词的文档,首先搜索“最高法”,点击“search in results”,找到0个,那么再试试输入“最高人民法院”, 点击“search in results”,程序仍然会在427个文档的范围内搜索,如果没找到,可以再换其他的关键词……7 N0 [, u# |6 a- U5 ^; ?
search recursively:点击这个button,用来确认、缩小搜索范围。接上例:在427个文档中搜索到50个包含“最高人民法院”的文档,如果想在这个50个文档的范围内搜索其他关键词,先点击“search recursively”后,程序会修改搜索范围至这50个文档,接下来再使用“search in results”尝试搜索“驳回”、“除斥期间”等不同的关键词,找到想要的文档范围后,再点击“search recursively”来确认缩小搜索范围……两个button循环使用,直到找到符合要求的结果。
% S+ {0 R2 m( ? Z貌似逻辑运算或者正则表达式也能够实现这个搜索目的,但是这么搜索逻辑上更简单,搜索结果也更清晰,细品,还是有不少区别的。
) w) `2 l, U) h4 v可能你还不明白……不要紧,我表达能力有问题,一共没有几个button,结合需求,稍微试试就知道他们的区别了。
0 V+ Q p6 F! i) v+ g. ~1 O中间显示区:显示程序运行信息。% z% a, r1 [; H- ?! o5 j/ B4 E
底部提示:不使用正则表达式或使用正则表达式时关键字用法和示例的简单介绍。
5 ~* y0 I- H2 m
9 v0 t: Z* R" ? |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?免费注册
x
评分
-
2
查看全部评分
-
|