生成动态用户页面的普通索引?

时间:2011-10-17 11:18:14

标签: asp.net

我的网站是一个商家目录。网站上的不同商家都有可以使用http://mysite.com/businessname等网址访问的子页面。在幕后,我正在使用网址重写将这些子页面指向http://mysite.com/businesspage.aspx?id=[businessIDGuid]这样的页面。

我希望商业页面出现在搜索引擎中,为此,我需要创建指向它们的链接。用户可以在我的网站上使用搜索工具查找商家,但搜索引擎无法使用此功能。

我认为我应该创建一个平面索引页面,其中包含我数据库中每个业务的名称,以及指向其子页面的链接。但是,我的数据库中有很多业务(目前大约有160,000个),所以我无法将所有业务放在一个页面上。此外,生成这些页面的明显方法 - 使用page_load方法调用的sql查询可以回收所有业务的列表 - 会给服务器带来相当大的负担。生成一个页面并将其缓存一天左右是有意义的,但我不知道如何在asp.net的上下文中执行此操作。

在asp.net中生成用户页面索引的最佳方法是什么?

1 个答案:

答案 0 :(得分:1)

总之,您需要生成sitemap并将其提交给相应的搜索引擎。

对于大型网站,生成和更新单个文件站点地图将是一项繁琐的任务 - 幸运的是,您可以将站点地图分解为多个文件,谷歌等搜索引擎可以使用可以链接到这些站点地图文件的sitemap index

  • 基本上,你需要找到一种方便的方法来打破你的 企业分组 - 您可以使用字母顺序,业务 类别,自定义标签(或组合)将它们分解为更小 小组(比如说几百到几千人组成一个小组)。
  • 每组维护一个站点地图或页面。保持一张桌子 数据库跟踪每个页面/站点地图和上次更新的日期/时间 同样的。
  • 您不能使用ASP.NET代码来维护这些页面 - 而是编写一个小型.NET控制台(或Windows窗体)程序来生成/更新站点地图。使用Windows Scheduler(任务)安排程序定期运行。
  • 例如,您可以每15分钟运行一次程序。该程序将首先检查是否存在要生成的站点地图(将在第一次发生)。如果是,那么它将提取3-4个站点地图并生成它们。将他们的条目添加到日志表中。
  • 如果生成了所有页面,则可以开始更新它们。因此,再次检查最后更新的页面,选择3-4先更新并再次构建它们。
  • 您必须调整您的预定时段和要生成/更新的页数,以在某个目标时间范围内覆盖整个站点地图。例如,如果您每天晚上8点到早上6点每10分钟运行一次程序,并且每天运行10个站点地图,那么在一天内,您将覆盖600个站点地图。如果您有5000个站点地图,那么您的整个站点地图将每8天刷新一次。