首先,这个系统从一开始就是冲着全文和正则搜索去的,如果不需要全文和正则也就不用这么折腾了。在现在的数据量下,单机做全文搜索的确很蛋疼,再牛逼的服务器也无法做到实时返回。
新系统的大概原理是,在多个节点上部署查询守护程序,在一台机器上部署Web Server。
当一个查询请求产生时,Web Server通过HTTP将这个请求分发到各个节点上(每个节点只负责特定的一部分文件,这个量可以根据节点的运算能力调整)。
当所有节点返回时,Web Server返回结果。
具体技术实现是这样,每个节点用的是Gevent + 一个简单的HTTP Server,直接spawn出grep查询文件。
Web Server使用Tornado,异步调用所有节点。
单机测试效果不错,但是我没有足够的节点,无法使其发挥出最大的威力。
大家有什么看法?
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
https://www.v2ex.com/t/24602
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.