2011-12-03 39 views
1

我有一个XML文档集合,一个倒排文件索引器和一个用于搜索索引器产生的索引(或索引)的命令行工具。请注意,后者返回文档ID列表和各文档的各种统计信息(根据各种功能的排名,术语匹配等),而不是实际的文档文本。这两个程序都是用C语言写的(我)。索引文档集合的Web前端

  • 集合并不是很大(〜1GB)。
  • 该指数约为集合大小的10-20%。
  • 这不是公开使用(并且永远不会)公共使用(使用它将需要登录)。
  • 它需要运行客户端脚本完全禁用。

我想掀起一个简单的web前端,让我来查询与搜索字词的指标,并适当地呈现结果,但因为我摸了网络的东西它已经有一段时间。

我想查看或多或少与查询返回的信息相同的信息,但我不确定是否要编写一些要求我的命令行查询程序的东西(例如PHP,Ruby - 可选的建议)并处理输出,或重新实现查询程序是否更合适。

其中有什么明显的优势吗?安全风险? 任何人都可以推荐我一个轻量级的框架或库适合任何这个? (就像我说的,有一段时间没有触及网页内容。)

我应该调用CLI查询程序吗?为什么或者为什么不?

(= /我希望我不是太模糊了......做,告诉我应该问这个以不同的方式。)

+0

每秒计划多少请求?对于低活动的Web服务,您可以使用具有一定限制(例如100或500个结果)的CLI查询程序调用,将其存储在某个临时位置并显示给用户。您可以在没有任何框架,普通PHP或其他面向Web的lang的情况下执行此操作。 – osgx

+0

最坏的情况下,可能需要一秒钟。我的问题并不是“我可以”,而是“我应该吗?一种比另一种更好?为什么?为什么不?” –

回答

2

对于这样简单的东西,我会用PHP和Apache服务器。为什么?

它不需要Web框架来接口Apache;复杂性降低=您花费配置的时间更少。你可以只安装Apache和PHP模块,然后在此文件在网络根下降,并指出一个HTML表单http://127.0.0.1/indexer.php与文本域"name""author"

<?php 
$required_terms = array("name", "author"); 

foreach ($required_terms as $value) { 
    if (!isset($_POST[$value])) { 
     printf("The search term \"%s\" was missing", $value); 
     exit; 
    } 
} 

$terminal_command = sprintf("/usr/bin/indexer -n %s -a %s", $_POST["name"], $_POST["author"]); 
print exec($terminal_command); 

(请注意,这只是为了展示简单性,它需要验证收到的帖子值)。

然后,这将运行您的应用程序与2值作为参数,然后打印任何发送到您的应用程序stdout。没有更多的麻烦或事情设置。这需要几分钟的时间才能启动并运行。

所以,最主要的原因是简单和快速设置,东西内,这样简单。