假设的网络词典架构

时间:2011-06-16 16:55:51

标签: php mysql dictionary architecture

假设我正在构建一个简单的字典,用户可以在其中输入单词并查看定义。

过于简单化,将字典设置为MySQL表是否有任何问题,每个用户对单词的请求都会调用PHP脚本来查找单词,并显示其定义?

构建此项目的最佳方法是什么,以最大限度地减少用户延迟时间/不会使服务器过热? dictionary.com是如何做到的?我的资源有限,所以我负担不起专用服务器

1 个答案:

答案 0 :(得分:0)

由于此问题被标记为体系结构,因此在此情况下尝试提供基本体系结构概述。 问题陈述包括以下几点。

  1. 在线申请 - 因此,单一服务/应用程序将为多个用户提供服务。
  2. 文本搜索 - 大多数时候查询不是完整的单词,可以在数据库中找到。
  3. 频繁的数据库查询 - 随着用户数量的增长,这可能会成为问题。
  4. 所以,您可能会想到以下解决方案。
    谷歌的文本搜索工具/库。你会发现很多。要获得一些相关的搜索结果。或者您可以使用wordweb的方式。

    为避免频繁的数据库查询,您可以在某些文件(如Lucene Search)中缓存最近1000个结果或一些可配置数量的结果。

    <强>声明

    如果同时存在多个用户,则上述架构将保持良好状态。或者如果这甚至是需要的话。否则,这可能不仅仅需要努力。

    开发架构的最佳方法是使系统适应变化。所以从基础工作开始,不断适应变化。