DetailPage-MSS-KB

기술 자료

기술 자료: 928700 - 마지막 검토: 2006년 12월 11일 월요일 - 수정: 1.0

 

이 페이지에서

소개

이 문서에서는 Microsoft Expression Web ASP (Active Server Pages)을 사용하여 사용자 지정된 인덱스 서버 검색 페이지를 만드는 방법에 대해 설명합니다.

추가 정보

Microsoft ASP.NET 1 단계: 설치

Expression Web ASP 기능을 사용하기 전에 ASP.NET을 설치해야 합니다. ASP.NET 설치하는 방법에 대한 자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조하십시오.
928710  (http://support.microsoft.com/kb/928710/ ) Expression Web ASP (Active Server Pages) 기능을 사용할 수 있는 ASP.NET 설치하는 방법

2단계: 양식 페이지를 Expression Web 추가

  1. Expression Web 시작 및 검색 페이지 만들기 웹 사이트를 엽니다.
  2. 파일 메뉴에서 새로 만들기를 가리킨 페이지 를 클릭한 다음 확인 을 누릅니다.
  3. 삽입 메뉴에서 HTML 가리킨 다음 기타 HTML 태그 를 클릭하십시오.
  4. 오른쪽 창에서 폼 컨트롤, 확장 및 입력 (텍스트) 두 번, 드롭다운 상자 를 두 번 클릭한 다음 두 번 클릭합니다 입력 (전송).
  5. 웹 페이지에 4 단계에서 삽입한 텍스트 상자를 두 번 클릭하십시오.
  6. 텍스트 상자 속성 대화 상자의 이름 상자에 QUERYTEXT 입력하십시오.
  7. 초기 값 상자에 <%=Request("QUERYTEXT")%>를 입력하십시오., 다음 확인 을 클릭합니다.
  8. 웹 페이지에 4 단계에서 삽입한 드롭다운 상자를 두 번 클릭하십시오.
  9. Drop 아래로 상자 속성 대화 상자의 이름 상자에 QUERYFIELD 입력하십시오.
  10. 추가 클릭한 다음 DocAppName선택 상자에 입력하십시오.
  11. 값 지정 확인란의 선택을 취소한 다음 확인 을 누릅니다.
  12. 10-11 다음 메뉴 항목을 추가하려면 반복하십시오.
    • 특성화
    • 파일 이름
    • DocAuthor
    • DocTitle
  13. 확인 을 클릭하십시오
  14. 전송 단추를 마우스 오른쪽 단추로 클릭하고 양식 속성 을 클릭하십시오.
  15. 다른 곳으로 보내기 를 클릭한 다음 옵션 을 클릭하십시오.
  16. <%=Request.ServerVariables("URL")%> 명령 상자에 입력하십시오.차례로 두 번 클릭합니다.
  17. 파일 메뉴에서 저장 을 클릭하십시오.
  18. 파일 이름 상자에 IndexServerTest.asp 를 입력한 다음 저장 을 클릭하십시오.

3단계: 페이지에 예제 ASP 코드 추가

참고식 웹으로 이 문서의 예제 코드를 붙여 넣을 경우 오류 메시지가 나타날 수 있습니다. 식 웹 꺾쇠괄호 (<) 잘못 해석할 수 있습니다. 이 문제를 해결하려면 예제 코드를 빈 메모장 문서에 붙여 넣습니다. 메모장에서 코드를 복사한 다음 식 웹으로 붙여 넣습니다.
  1. 오른쪽 창의 상태 표시줄에 HTML 뷰로 전환하십시오 코드 클릭하십시오.
  2. Type or paste the following code before the opening HTML tag:
    <%
      ' Force variable declaration.
      Option Explicit
    
      ' Declare all our variables.
      Dim strQueryText
      Dim strQueryField
      Dim strSQL
      Dim strName
      Dim strValue
      Dim objRS
      Dim objField
    
      ' This is the list of Index Server variables that will appear.
      ' You can customize the list of fields. For more information,
      ' see Microsoft Knowledge Base article 318387.
      Const strDisplayFields = "Rank, DocAuthor, DocAppName, DocTitle, FileName, Create, Access, Characterization, VPath"
    
      ' This is the default Index Server catalog for all Web content.
      ' For information about how to customize this, see Microsoft 
      ' Knowledge Base article 318387.
    
      Const strDataSource = "WEB"
    
      ' Get the value of the user-submitted search query.
      strQueryText = Request("QUERYTEXT")
      ' Set a default value if the user has not submitted anything.
      If Len(strQueryText) = 0 Then strQueryText = "%%"
    
      ' Get the field that the user wants to query against.
      strQueryField = Request("QUERYFIELD")
      ' Set a default value if the user has not specified a field.
      If Len(strQueryField) = 0 Then strQueryField = "DocTitle"
    %>
  3. 입력하거나 닫는 태그 뒤에 다음 코드를 붙여:
    ' Check if the user has entered a value in the form
    If strQueryText <> "%%" Then
    <%
      ' Build the SQL statement from the user-specified options.
      strSQL = "SELECT " & strDisplayFields & " FROM SCOPE() " & _
      	"WHERE ((" & strQueryField & " LIKE '%" & strQueryText & "%') AND " & _
      	"((VPath NOT LIKE '%/_vti%') AND (VPath NOT LIKE '%/_private%')))"
    
      ' Create a recordset object.
      Set objRS = Server.CreateObject("ADODB.Recordset")
    
      ' Open the recordset by using the SQL string with the Index Server provider.
      objRS.Open strSQL,"PROVIDER=MSIDXS;DATA SOURCE=" & strDataSource
    
      ' Are there any records to show?
      If objRS.EOF Then
    
        ' Show a default message if nothing is found.
        Response.Write "No Documents were Found." & vbCrLf  
    
      ' Otherwise...
      Else
    
        ' Start a table.
        Response.Write "<table border=""1"">" & vbCrLf
    
        ' Start the row for the header section.
        Response.Write "<tr>" & vbCrLf
        ' Loop through the fields collection.
        For Each objField in objRS.Fields
          ' Get the field's name.
          strName  = objField.Name
          ' If the field has a name, escape it for HTML.
          If Len(strName)  > 0 Then strName = Server.HTMLEncode(strName)
          ' Output the field name as a table header.
          Response.Write "<th>" & strName & "</th>" & vbCrLf
        Next
        ' End the row for the header section.
        Response.Write "</tr>" & vbCrLf   
    
        ' Loop through all the records.
        While Not objRS.EOF
          ' Start a row in the data section.
          Response.Write "<tr>" & vbCrLf
          ' Loop through the fields collection.
          For Each objField in objRS.Fields
            ' Get the field's value.
            strValue = objField.Value
            ' Look for null values.
            If Len(strValue) > 0 Then
              ' If the value is not null, escape it for HTML.
              strValue = Server.HTMLEncode(strValue)
            Else
              ' Otherwise, make it a non-breaking space character.
              strValue = "&#xa0;"
            End If
          ' Output the field value as table data.
            Response.Write "<td>" & strValue & "</td>" & vbCrLf
          Next
          ' End a row in the data section.
          Response.Write "</tr>" & vbCrLf
          ' Move on to the next record.
          objRS.MoveNext
         Wend
         Response.Write "</table>" & vbCrLf
      End If
    %>
    Else
    ' User has not entered any value in search form
        Response.Write "Please enter a Search Term before submitting the form" & vbCrLf
    End if
  4. 파일 메뉴에서 저장 을 클릭하십시오.

4단계: 예제 ASP 페이지 테스트

  1. Expression Web 시작하고 IndexServerTest.asp 페이지를 엽니다.
  2. 파일 메뉴에서 브라우저에서 미리 보기 를 가리킨 다음 사용할 브라우저를 선택하십시오.
  3. 텍스트 상자에 검색 조건을 입력하십시오. 목록에서 쿼리할 필드를 클릭하십시오.
  4. 전송 을 누릅니다. 쿼리와 일치하는 결과가 페이지의 표에 나타납니다.

단계 5: 예제 ASP 페이지 사용자 지정

다음 방법 중 하나를 예제 ASP 페이지를 사용자 지정할 수 있습니다.

방법 1: 카탈로그 변경

여러 인덱스 서버 카탈로그 웹 서버에 정의되어 있는 경우 다른 카탈로그 사용하는 샘플 페이지를 구성할 수 있습니다. 이렇게 하려면 다음과 같이 하십시오.
  1. Expression Web 시작하고 열린 예제 ASP이 이 문서의 앞부분에서 만든 페이지.
  2. HTML 뷰로 전환하십시오 코드 클릭하십시오.
  3. 다음 코드 줄을 찾습니다:
    Const strDataSource = "WEB"
  4. strDataSource 변수 값을 카탈로그 이름을 변경하십시오. 예를 들어, 다음 코드 줄을 유사합니다:
    Const strDataSource = My_Custom_Catalog
  5. 파일 메뉴에서 저장 을 누른 다음 파일을 닫습니다.

방법 2: 필드 목록 수정

  1. Expression Web 시작하고 이 문서의 앞부분에서 만든 예제 웹 페이지를 엽니다.
  2. HTML 뷰로 전환하십시오 코드 클릭하십시오.
  3. 다음 코드에서는 유사한 코드 줄을 찾습니다:
    Const strDisplayFields = "Rank, DocAuthor, DocAppName"
  4. 값 목록을 변경하십시오. 각 필드 이름을 쉼표로 구분하십시오. 예를 들어, 다음 코드 줄을 유사합니다:
    Const strDisplayFields = "Rank, DocAuthor, DocAppName, DocTitle"
  5. 파일 메뉴에서 저장 을 누른 다음 파일을 닫습니다.
다음 표에서는 strDisplayFields 변수를 사용할 수 있는 값을 보여 줍니다.
표 축소표 확대
필드 이름필드 형식설명
액세스날짜/시간마지막으로 파일을 액세스한
특성화텍스트/문자열특성화, 또는 추상 인덱스 서버에서 계산된 문서
만들기날짜/시간파일이 만들어진 날짜와 시간
디렉터리텍스트/문자열파일 이름을 포함한 파일의 실제 경로
DocAppName텍스트/문자열파일을 만든 응용 프로그램 이름
DocAuthor 텍스트/문자열문서 작성자
DocByteCount숫자 문서에 있는 바이트
DocCategory텍스트/문자열메모, 일정, 백서 등의 문서 형식
DocChar숫자 개수문서의 문자 수
DocComments텍스트/문자열문서에 대한 설명
DocCompany텍스트/문자열문서를 쓰여진 회사 이름
DocCreatedTm날짜/시간문서를 만든 시간
DocEditTime날짜/시간문서를 편집하는 데 걸린 않은 총 시간
DocHiddenCount숫자Microsoft PowerPoint 프레젠테이션의 숨겨진된 슬라이드 수가
DocKeywords텍스트/문자열문서 키워드
DocLastAuthor텍스트/문자열사용자가 문서를 편집할 가장 최근
DocLastPrinted날짜/시간문서를 마지막으로 인쇄한 날짜와 시간
DocLastSavedTm날짜/시간 문서를 마지막으로 저장한 시간
DocLineCount숫자문서에 포함된 줄
DocManager텍스트/문자열문서 작성자의 관리자 이름
DocNoteCount숫자PowerPoint 프레젠테이션에 노트를 포함할 페이지 수
DocPageCount숫자문서의 페이지 수
DocParaCount숫자문서의 단락 수
DocPartTitles텍스트/문자열문서 부분의 이름입니다. 예를 들어, Microsoft Excel에서 스프레드시트 문서를 일부입니다. Microsoft PowerPoint에서 슬라이드를 문서의 일부입니다. Microsoft Word에서 문서 마스터 문서에 포함된 문서의 파일 이름이 있습니다.
DocPresentationTarget텍스트/문자열PowerPoint 프레젠테이션에 대한 대상 형식 (예: 35 mm, 프린터 또는 비디오)
DocRevNumber텍스트/문자열문서의 현재 버전 번호
DocSlideCount숫자PowerPoint 프레젠테이션에 있는 슬라이드 수
DocSubject텍스트/문자열문서 제목
DocTemplate텍스트/문자열문서 서식 파일의 이름
DocTitle텍스트/문자열문서 제목
DocWordCount숫자문서의 단어 수
FileIndex숫자파일의 고유 ID
파일 이름텍스트/문자열파일 이름
HitCount숫자방문 횟수, 또는 파일의 쿼리와 일치하는 단어 수가
경로텍스트/문자열파일 이름을 포함하여 파일의 전체 실제 경로
순위숫자행 순위입니다. 이 값은 0에서 1000으로 범위는. 더 나은 일치 항목을 더 큰 숫자를 나타냅니다.
ShortFileName텍스트/문자열짧은 (8.3) 파일 이름
크기숫자바이트 단위로 파일 크기
VPath텍스트/문자열파일 이름을 포함하여 파일의 전체 가상 경로. 둘 이상의 경로가 없을 경우 특정 쿼리에 가장 일치하는 선택됩니다.
쓰기날짜/시간파일에 쓰여진 마지막 시간

문제 해결

  • 인덱스 서비스가 실행되고 있으면 다음과 같은 오류 메시지가 나타날 수 있습니다.
    Microsoft OLE DB 공급자에 대한 인덱싱 서비스 오류 '80041820' 서비스가 실행되고 있지 않습니다. /IndexServerTest.asp, 줄 44
    이 문제를 해결하려면 인덱스 서비스를 시작하십시오.
  • 오류 메시지가 유효하지 않은 카탈로그 지정할 경우 다음 오류 메시지가 유사합니다.
    Microsoft OLE DB 공급자에 대한 인덱싱 서비스가 오류 '8004181d' 저기 없음 카탈로그입니다. /IndexServerTest.asp, 줄 44
    이 문제를 해결하려면 strDataSource 변수의 값을 확인하십시오. 올바른 경우 인덱스 서비스를 다시 시작하십시오.

참조

Microsoft Windows 2000 인덱싱 서비스를 사용하여 작업하는 방법에 대한 자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조하십시오.
185985  (http://support.microsoft.com/kb/185985/ ) 인덱스 서버를 사용하여 META 태그 정보를 쿼리하고 표시합니다
256276  (http://support.microsoft.com/kb/256276/ ) 오류 메시지: 은 없음 카탈로그
229282  (http://support.microsoft.com/kb/229282/ ) 인덱스 서버 결과 페이지의 소스를 보면 ASP 코드를 볼 수 있습니다.

본 문서의 정보는 다음의 제품에 적용됩니다.
  • Microsoft Expression Web
키워드: 
kbmt kbexpertiseinter kbhowto KB928700 KbMtko
기계 번역된 문서기계 번역된 문서
중요: 본 문서는 전문 번역가가 번역한 것이 아니라 Microsoft 기계 번역 소프트웨어로 번역한 것입니다. Microsoft는 번역가가 번역한 문서 및 기계 번역된 문서를 모두 제공하므로 Microsoft 기술 자료에 있는 모든 문서를 한글로 접할 수 있습니다. 그러나 기계 번역 문서가 항상 완벽한 것은 아닙니다. 따라서 기계 번역 문서에는 마치 외국인이 한국어로 말할 때 실수를 하는 것처럼 어휘, 구문 또는 문법에 오류가 있을 수 있습니다. Microsoft는 내용상의 오역 또는 Microsoft 고객이 이러한 오역을 사용함으로써 발생하는 부 정확성, 오류 또는 손해에 대해 책임을 지지 않습니다. Microsoft는 이러한 문제를 해결하기 위해 기계 번역 소프트웨어를 자주 업데이트하고 있습니다.
공유
추가 지원 옵션
Microsoft Community 지원 포럼
직접 문의하기
Microsoft Certified Partner 찾기
Microsoft Store
소기업이 아닙니까?
다음에서 팔로우하십시오.