2011-06-16 28 views
0

假設我正在構建一個簡單的詞典,用戶輸入一個詞並查看定義。假設的網絡詞典架構

在簡單化中,將我的字典設置爲MySQL表是否存在任何問題,並且每個用戶請求單詞都會調用PHP腳本來查找單詞並顯示其定義?

什麼是最優化的方式來最小化用戶滯後時間/不會使服務器過熱? dictionary.com如何做到這一點?我的資源是有限的,所以我買不起一個專用的服務器

+2

索引。是的,我想過要諷刺它,但我不能打擾。所以,索引。 – 2011-06-16 16:57:51

+1

除非你有更多的單詞是你的母語,否則它不會對數據庫造成太大的負擔,前提是你使用了正確的和富有成效的索引。你可以使用全文研究來獲得更好的結果(因爲一旦被緩存,它將根據相關性檢索) – 2011-06-16 16:59:06

+1

調查[Postgres的全文搜索](http://www.postgresql.org/docs/9.0/static/textsearch .html)功能。它非常強大。 – 2011-06-16 18:05:35

回答

0

由於這個問題被標記爲架構,所以試圖提供一個基本的架構概述在這種情況下。 問題描述由以下幾點組成。

  1. 在線申請 - 所以單一服務/應用程序將爲多個用戶提供服務。
  2. 文本搜索 - 大多數時間查詢不是可以在數據庫中找到的完整詞。
  3. 頻繁的數據庫查詢 - 隨着用戶數量的增長,這可能會成爲問題。

因此,您可能會想到以下解決方案。
Google文本搜索工具/庫。你會發現很多。獲得一些相關的搜索結果。或者你可以使用wordweb

爲了避免頻繁的數據庫查詢,您可以在某些文件(如Lucene Search)中緩存最後1000個結果或一些可配置數量的結果。如果同時有多個用戶

免責聲明

上述架構將舉行好。或者,如果這是甚至需要。否則,這可能不僅僅是需要努力。

開發架構的最佳方法是使系統適應變化。所以,從基礎工作開始,不斷適應變化。