500 多 M 的文本怎么快速搜索相应的内容?

2015-12-14 20:56:27 +08:00
 silvernoo
几百本小说,要能支持正则表达式。

grep 搜索大量文本非常慢。我在想如果分词然后建立索引,速度应该非常快。请问有现成的轮子吗?
1756 次点击
所在节点    问与答
10 条回复
morefreeze
2015-12-14 20:59:44 +08:00
500M 用 grep 能慢到哪? 1 分钟出不来么?我没试过 就是问问
不行换 ack 试试 效率说是比 grep 快很多
lightening
2015-12-14 21:03:24 +08:00
@morefreeze 不不, ack 快是建立在它会自动忽略不需要搜索的文件(比如 binary 和 .git/ 下的文件)的基础上的, ack 本身是 Python 写的,不可能比 grep 快。
Zzzzzzzzz
2015-12-14 21:07:53 +08:00
这点量 buffer 预热好后很快的

yang@laptap ~/Downloads/2000W $ egrep 张\S*民 * | wc -l
835
yang@laptap ~/Downloads/2000W $ time egrep 张\S*民 * > /dev/null

real 0m4.483s
user 0m3.893s
sys 0m0.579s
yang@laptap ~/Downloads/2000W $ time egrep 李\S*民 * > /dev/null

real 0m4.419s
user 0m3.779s
sys 0m0.626s
yang@laptap ~/Downloads/2000W $ du -sh
3.0G .
rming
2015-12-14 21:08:55 +08:00
sphinx elasticsearch
前者, 0 配置,简单
后者,现代,扩展性好
Zzzzzzzzz
2015-12-14 21:11:48 +08:00
cache...不是 buffer, 写错.
pynix
2015-12-15 04:50:38 +08:00
全文检索。。。
KentY
2015-12-15 06:29:40 +08:00
试试 ag
这家伙真比 grep 快不少
不过话说回来, 500M 文本对 grep 来说不算什么事儿啊.
KentY
2015-12-15 06:31:32 +08:00
或者一下都 load 到内存里, 反正才 500M 随便你怎么折腾.
MOxFIVE
2015-12-15 08:40:06 +08:00
FileLocator
silvernoo
2015-12-15 09:53:02 +08:00
@MOxFIVE 一看名字就是我想要的

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/243547

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX