DetailPage-MSS-KB

Base de Dados de Conhecimento

ID do artigo: 928700 - Última revisão: segunda-feira, 11 de dezembro de 2006 - Revisão: 1.0

 

Nesta página

INTRODUÇÃO

Este artigo descreve como criar uma página de pesquisa personalizada do Index Server usando Active Server Pages (ASP) no Microsoft Expression Web.

Mais Informações

Etapa 1: Instalar o Microsoft ASP.NET

Antes de poder usar os recursos ASP no Expression Web, você deve instalar ASP.NET. Para obter mais informações sobre como instalar o ASP.NET, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
928710  (http://support.microsoft.com/kb/928710/ ) Como instalar o ASP.NET para usar os recursos do Active Server Pages (ASP) no Expression Web

Etapa 2: Adicionar uma página de formulário no Expression Web

  1. Inicie o Expression Web e, em seguida, abra o site para o qual você deseja criar uma página de pesquisa.
  2. No menu arquivo , aponte para novo , clique em página e, em seguida, clique em OK .
  3. No menu Inserir , aponte para HTML e, em seguida, clique em Mais marcas HTML .
  4. No painel direito, expanda Controles de formulário e em seguida, clique duas vezes entrada (texto) , clique duas vezes em Caixa suspensa e, em seguida, clique duas vezes em Input (Submit) .
  5. Na página da Web, clique duas vezes na caixa de texto que você inseriu na etapa 4.
  6. Na caixa de diálogo Propriedades de caixa de texto , digite QUERYTEXT na caixa nome .
  7. Na caixa valor inicial , digite <%=Request("QUERYTEXT")%> e em seguida, clique em OK .
  8. Na página da Web, clique duas vezes na caixa drop-down que você inseriu na etapa 4.
  9. Na caixa de diálogo Drop Down propriedades de caixa , digite QUERYFIELD na caixa nome .
  10. Clique em Adicionar e, em seguida, digite DocAppName na caixa Escolha .
  11. Clique para desmarcar a caixa de seleção Especificar valor e, em seguida, clique em OK .
  12. Repita as etapas 10 e 11 para adicionar os seguintes itens de menu:
    • caracterização
    • FileName
    • DocAuthor
    • DocTitle
  13. Clique em OK
  14. Clique com o botão Enviar direito do mouse e, em seguida, clique em Propriedades formulário .
  15. Clique em Enviar para outro e em seguida, clique em Opções .
  16. Na caixa ação , digite <%=Request.ServerVariables("URL")%> e clique em OK duas vezes.
  17. No menu arquivo , clique em Salvar .
  18. Na caixa nome do arquivo , digite IndexServerTest.asp e, em seguida, clique em Salvar .

Etapa 3: Adicionar o código de ASP de exemplo para a página

Observação Você receberá uma mensagem de erro se você colar o código de exemplo deste artigo para o Expression Web. O Expression Web pode misinterpret os colchetes angulares (<). Para contornar esse comportamento, cole o código de exemplo em um documento em branco do bloco de notas. Em seguida, copie o código no bloco de notas e cole-o no Expression Web.
  1. Na barra de status do painel direito, clique em código para alternar para o modo de exibição 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. Digite ou cole o código a seguir após a marca de fechamento:
    ' 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. No menu arquivo , clique em Salvar .

Etapa 4: Testar a página ASP de exemplo

  1. Iniciar o Expression Web e em seguida, abra a página IndexServerTest.asp.
  2. No menu arquivo , aponte para Visualizar no navegador e, em seguida, clique no navegador que você deseja usar.
  3. Na caixa de texto, digite os critérios de pesquisa. Na lista, clique no campo que você deseja consultar.
  4. Clique em Enviar . Qualquer resultado que correspondem à sua consulta aparecem em uma tabela na página.

Etapa 5: Personalizar a página ASP de exemplo

Use um dos seguintes métodos para personalizar a página ASP de exemplo.

Método 1: Alterar o catálogo

Se vários catálogos do Index Server estiverem definidos no servidor Web, você pode configurar a página de exemplo para usar um catálogo diferente. Para fazer isso, execute as seguintes etapas:
  1. Inicie o Expression Web e, em seguida, abrir o exemplo de ASP página que você criou anteriormente neste artigo.
  2. Clique em código para alternar para modo de exibição de HTML.
  3. Localize a linha de código a seguir:
    Const strDataSource = "WEB"
  4. Altere o valor da variável strDataSource para o nome do seu catálogo. Por exemplo, a linha será semelhante o código a seguir:
    Const strDataSource = My_Custom_Catalog
  5. No menu arquivo , clique em Salvar e, em seguida, feche o arquivo.

Método 2: Modificar a lista de campos

  1. Inicie o Expression Web e abra a página da Web de exemplo que você criou anteriormente neste artigo.
  2. Clique em código para alternar para modo de exibição de HTML.
  3. Localize a linha de código que se pareça com o código a seguir:
    Const strDisplayFields = "Rank, DocAuthor, DocAppName"
  4. Altere a lista de valores. Separe cada nome de campo com uma vírgula. Por exemplo, a linha será semelhante o código a seguir:
    Const strDisplayFields = "Rank, DocAuthor, DocAppName, DocTitle"
  5. No menu arquivo , clique em Salvar e, em seguida, feche o arquivo.
A tabela a seguir lista os valores que você pode usar para a variável strDisplayFields .
Recolher esta tabelaExpandir esta tabela
nome do campo tipo de campo Descrição
AcessoData/horaNa última vez que o arquivo foi acessado
CaracterizaçãoTexto/seqüênciaCaracterização ou resumo do documento como computado pelo Index Server
CriarData/horaA hora em que o arquivo foi criado
DiretórioTexto/seqüênciaO caminho físico do arquivo, não incluindo o nome do arquivo
DocAppNameTexto/seqüênciaO nome do aplicativo que criou o arquivo
DocAuthor Texto/seqüênciaO autor do documento
DocByteCountNumérico O número de bytes no documento
DocCategoryTexto/seqüênciaO tipo de documento, como um memorando, agenda ou white paper
DocCharContagem numéricaO número de caracteres no documento
DocCommentsTexto/seqüênciaOs comentários sobre o documento
DocCompanyTexto/seqüênciaO nome da empresa para o qual o documento foi escrito
DocCreatedTmData/horaA hora em que o documento foi criado
DocEditTimeData/horaO tempo total que foi gasto edição do documento
DocHiddenCountNuméricoO número de slides ocultos em uma apresentação do Microsoft PowerPoint
DocKeywordsTexto/seqüênciaAs palavras-chave documento
DocLastAuthorTexto/seqüênciaO usuário mais recente que editou o documento
DocLastPrintedData/horaA hora em que o documento foi impresso pela última vez
DocLastSavedTmData/hora A hora em que o documento foi salvo pela última vez
DocLineCountNuméricoO número de linhas contidas em um documento
DocManagerTexto/seqüênciaO nome do gerente do autor do documento
DocNoteCountNuméricoO número de páginas que têm anotações em uma apresentação do PowerPoint
DocPageCountNuméricoO número de páginas no documento
DocParaCountNuméricoO número de parágrafos no documento
DocPartTitlesTexto/seqüênciaOs nomes das partes do documento. Por exemplo, no Microsoft Excel, uma planilha é uma parte do documento. No Microsoft PowerPoint, um slide é uma parte do documento. No Microsoft Word, os nomes de arquivo dos documentos que estão contidos em um documento mestre são partes do documento.
DocPresentationTargetTexto/seqüênciaO formato de destino (como 35 mm, impressora ou vídeo) para uma apresentação do PowerPoint
DocRevNumberTexto/seqüênciaO número de versão atual de um documento
DocSlideCountNuméricoO número de slides em uma apresentação do PowerPoint
DocSubjectTexto/seqüênciaO assunto do documento
DocTemplateTexto/seqüênciaO nome do modelo para o documento
DocTitleTexto/seqüênciaO título do documento
DocWordCountNuméricoO número de palavras no documento
FileIndexNuméricoA identificação exclusiva do arquivo
FileNameTexto/seqüênciaO nome do arquivo
Contagem de ocorrênciasNuméricoO número de ocorrências ou palavras que correspondem a uma consulta, no arquivo
CaminhoTexto/seqüênciaO caminho físico completo do arquivo, incluindo nome de arquivo
ClassificaçãoNuméricoA classificação da linha. Esse valor varia de 0 a 1000. Números maiores indicam correspondências melhores.
ShortFileNameTexto/seqüênciaO nome de arquivo (8.3) curto
TamanhoNuméricoO tamanho do arquivo em bytes
VPathTexto/seqüênciaO caminho completo virtual do arquivo, incluindo o nome do arquivo. Se houver mais de um caminho possível, a melhor correspondência para a consulta específica é escolhida.
GravaçãoData/horaNa última vez que o arquivo foi gravado

Solução de problemas

  • Se não estiver executando o serviço de indexação, você receber a seguinte mensagem de erro:
    Microsoft OLE DB Provider para erro do serviço de indexação '80041820' serviço não está em execução. / IndexServerTest.asp, linha 44
    Para resolver esse problema, inicie o serviço de indexação.
  • Se você especificar um catálogo que não é válido, que você receber uma mensagem de erro semelhante a seguinte mensagem de erro:
    Microsoft OLE DB Provider para o serviço de indexação erro '8004181d' não é nenhum catálogo. / IndexServerTest.asp, linha 44
    Para resolver esse problema, verifique o valor da variável strDataSource . Se ele estiver correto, reinicie o serviço de indexação.

Referências

Para obter mais informações sobre como trabalhar com o serviço de indexação do Microsoft Windows 2000, clique nos números abaixo para ler os artigos na Base de dados de Conhecimento da Microsoft:
185985  (http://support.microsoft.com/kb/185985/ ) Usar o Index Server para consultar e exibir informações de META TAG
256276  (http://support.microsoft.com/kb/256276/ ) Mensagem de erro: não há nenhum catálogo
229282  (http://support.microsoft.com/kb/229282/ ) Código ASP fica visível quando você exibir a fonte de uma página de resultados do Index Server

A informação contida neste artigo aplica-se a:
  • Microsoft Expression Web
Palavras-chave: 
kbmt kbexpertiseinter kbhowto KB928700 KbMtpt
Tradução automáticaTradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 928700  (http://support.microsoft.com/kb/928700/en-us/ )
Compartilhar
Opções de suporte adicionais
Fóruns de Suporte do Microsoft Community
Contate-nos diretamente
Localize um parceiro certificado da Microsoft
Microsoft Store