2011-10-17 2 views
0

내 사이트는 비즈니스 디렉토리입니다. 사이트의 다른 비즈니스는 http://mysite.com/businessname과 같은 URL로 액세스 할 수있는 서브 페이지가 있습니다. 뒤에,같은 페이지로 해당 서브 페이지를 가리 키도록 URL 재 작성을 사용하고 있습니다.동적 사용자 페이지의 일반 색인 생성?

비즈니스 페이지를 검색 엔진에 표시하고 그 링크를 만들 필요가 있습니다. 사용자는 내 사이트의 검색 도구를 사용하여 비즈니스를 찾을 수 있지만 검색 엔진에서는 사용할 수 없습니다.

데이터베이스의 모든 비즈니스 이름과 해당 서브 페이지에 대한 링크가 포함 된 플랫 인덱스 페이지를 만들어야한다고 생각했습니다. 그러나 내 데이터베이스에는 많은 비즈니스가 있습니다 (현재 약 16 만 건). 그래서 모든 것을 한 페이지에 넣을 수는 없습니다. 또한 모든 비즈니스 목록을 가져 오는 page_load 메서드에서 호출되는 SQL 쿼리를 사용하여 이러한 페이지를 생성하는 확실한 방법은 서버에 상당한로드를 가하게됩니다. 그것은 페이지를 생성하고 하루 정도 캐시에 의미가 있지만, asp.net의 컨텍스트 내에서 머물면서 어떻게 해야할지 모르겠다.

asp.net에서 사용자 페이지의 색인을 생성하는 가장 좋은 방법은 무엇입니까?

답변

1

요약하면 sitemap을 생성하고 해당 검색 엔진에 제출해야합니다.

큰 사이트의 경우 하나의 파일 Sitemap을 생성하고 업데이트하는 것은 지루한 작업입니다. 다행히도 Sitemap을 여러 파일로 분해 할 수 있으며 Google과 같은 검색 엔진은 sitemap index을 사용하여 이러한 사이트 맵 파일에 연결할 수 있습니다.

  • 그래서 본질적으로, 당신은 그룹으로 사업을 중단 할 수있는 편리한 방법을 찾을 필요 - 당신은 작은 그룹으로 침입 알파벳 순서, 비즈니스 범주, 사용자 정의 태그 (또는 조합)를 사용할 수 있습니다 (수백 말 하나의 그룹으로 수천을 두는 것).
  • 그룹당 하나의 사이트 맵 또는 페이지를 유지 관리합니다. 데이터베이스에 각 페이지/사이트 맵과 마지막으로 업데이트 된 날짜/시간을 추적하는 테이블을 유지하십시오.
  • ASP.NET 코드를 사용하여 이러한 페이지를 유지 관리 할 수 ​​없습니다. 대신 작은 .NET 콘솔 (또는 Windows 양식) 프로그램을 작성하여 사이트 맵을 생성/업데이트하십시오. Windows 스케줄러 (작업)를 사용하여 프로그램을 정기적으로 실행하도록 예약합니다.
  • 예를 들어 15 분마다 프로그램을 실행할 수 있습니다. 프로그램은 먼저 생성 될 사이트 맵이 있는지 확인합니다 (처음 발생할 것입니다). 그렇다면 3-4 개의 사이트 맵을 선택하여 생성합니다. 로그 테이블에 항목을 추가하십시오.
  • 모든 페이지가 생성되면 업데이트를 시작할 수 있습니다. 마지막으로 업데이트 된 페이지를 다시 확인하고 먼저 업데이트 된 3-4 개를 선택하고 다시 빌드하십시오.
  • 일부 대상 시간대의 전체 사이트 맵을 포함하도록 예약 기간 및 생성/업데이트 할 페이지 수를 조정해야합니다. 예를 들어 매일 8PM에서 6AM으로 10 분마다 프로그램을 실행하고 하루에 10 개의 사이트 맵을 업데이트하면 하루에 600 개의 사이트 맵을 처리하게됩니다. 총 사이트 맵 수가 5000 개인 경우 사이트 맵 전체가 약 8 일마다 새로 고쳐집니다.
+0

위의 내용은 내가 생각했던 것보다 더 좋은 생각입니다. – Oliver