2011-12-03 42 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。沒有更多的麻煩或事情設置。這需要幾分鐘的時間才能啓動並運行。

所以,最主要的原因是簡單和快速設置,東西內,這樣簡單。