我不确定从哪里开始这个,所以真正寻找一些指针或关键字来搜索。
假设我们有一个文件:
myHugeFile = open('someGiganticFile.txt')
搜索它需要,比如从上到下10分钟,没有任何索引。
for line in myHugeFile:
if 'keyword' in line:
send_line_to_web_user(line)
我想将此搜索集成到django页面中,但页面加载可能会超时用于大文件。用户可以搜索'keyword'
,然后在页面上的列表实时填充,并在弹出时显示搜索结果。
有什么东西要做吗?这将节省我为每个用户的会话存在的结果缓冲区制作一些超级复杂的轮询系统。 也许是一个不同的框架或库?冒险进入node.js土地?除了“实时民意调查django”之外,我有点不知道要搜索什么等等。
答案 0 :(得分:1)
这是考虑转移到node.js或其他异步框架的理想情况。如果你想坚持使用Python,Tornado是一个很好的选择。
另外,我记得有一位朋友使用whoosh作为实习项目的搜索引擎。他对此非常满意,所以我可以推荐它。
答案 1 :(得分:0)
您可能想要预处理该文件。 假设在每个单词映射到它包含的行集时创建一个缓存,这样你就可以获取它并返回它们。
答案 2 :(得分:0)
您可以获得初始请求以启动线程以执行将文件读取到共享资源的工作,并立即向浏览器返回200响应。
客户端上的Ajax轮询器可以定期请求循环,并在读取文件之前拾取并显示资源中的任何新结果。
这是一种快速而肮脏的方法,正如@slider所说,如果您的应用依赖于它,那么异步框架对于长轮询更好。