Como criar uma página de procura do Index Server personalizada utilizando ASP no Expression Web

Traduções de Artigos Traduções de Artigos
Artigo: 928700 - Ver produtos para os quais este artigo se aplica.
Expandir tudo | Reduzir tudo

Nesta página

INTRODUÇÃO

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

Mais Informação

Passo 1: Instalar o Microsoft ASP.NET

Antes de poder utilizar as funcionalidades ASP no Expression Web, tem de instalar o ASP.NET. Para obter mais informações sobre como instalar o ASP.NET, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
928710Como instalar o ASP.NET para utilizar as funcionalidades Active Server Pages (ASP) do Expression Web

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

  1. Inicie o Expression Web e, em seguida, abra o Web site para o qual pretende criar uma página de procura.
  2. No menu ficheiro , 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 códigos de HTML .
  4. No painel direito, expanda Controlos de formulário e faça duplo clique em Introdução de dados (texto) , faça duplo clique em Caixa pendente e, em seguida, faça duplo clique em entrada (submeter) .
  5. Na página Web, faça duplo clique a caixa de texto que introduziu no passo 4.
  6. Na caixa de diálogo Propriedades da caixa de texto , escreva QUERYTEXT na caixa nome .
  7. Na caixa valor inicial , escreva <%=Request("QUERYTEXT")%> e, em seguida, clique em OK .
  8. Na página Web, faça duplo clique a caixa pendente que introduziu no passo 4.
  9. Na caixa de diálogo Directo para baixo propriedades da caixa , escreva QUERYFIELD na caixa nome .
  10. Clique em Adicionar e, em seguida, escreva DocAppName na caixa Escolha .
  11. Clique para desmarcar a caixa de verificação Especificar valor e, em seguida, clique em OK .
  12. Repita os passos 10 e 11 para adicionar os seguintes itens de menu:
    • caracterização
    • NomeFicheiro
    • DocAuthor
    • DocTitle
  13. Clique em OK
  14. Clique com o botão Submeter direito do rato e, em seguida, clique em Propriedades do formulário .
  15. Clique em Enviar outro e, em seguida, clique em Opções .
  16. Na caixa ' acção ', escreva <%=Request.ServerVariables("URL")%> e, em seguida, clique em OK duas vezes.
  17. No menu ficheiro , clique em Guardar .
  18. Na caixa nome do ficheiro , escreva IndexServerTest.asp e, em seguida, clique em Guardar .

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

Nota Poderá receber uma mensagem de erro se colar o código de exemplo deste artigo num Expression Web. Expressão Web pode interpretar de forma incorrecta os parênteses em ângulo (<). Para contornar este comportamento, cole o código exemplo num documento em branco do bloco de notas. Em seguida, copie o código no bloco de notas e, em seguida, cole-o Expression Web.
  1. Na barra de estado do painel da direita, clique em código para mudar para a vista 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. Escreva ou cole o seguinte código após a tag de fecho:
    ' 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 ficheiro , clique em Guardar .

Passo 4: Testar a página ASP de exemplo

  1. Inicie o Expression Web e, em seguida, abra a página IndexServerTest.asp.
  2. No menu ficheiro , aponte para Pré-visualizar no browser e, em seguida, clique no browser que pretende utilizar.
  3. Na caixa de texto, escreva os critérios de procura. Na lista, clique no campo que pretende consultar.
  4. Clique em Submeter . Quaisquer resultados que correspondam à consulta aparecem numa tabela na página.

Passo 5: Personalizar a página ASP de exemplo

Utilize 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 Index Server estiverem definidos no servidor Web, pode configurar a página de exemplo para utilizar um catálogo diferente. Para o fazer, siga estes passos:
  1. Inicie o Expression Web e, em seguida, abra o ASP de exemplo página que tenha criado neste artigo.
  2. Clique em código para mudar para vista de HTML.
  3. Localize a seguinte linha de código:
    Const strDataSource = "WEB"
  4. Altere o valor da variável strDataSource para o nome do catálogo. Por exemplo, a linha será semelhante o seguinte código:
    Const strDataSource = My_Custom_Catalog
  5. No menu ficheiro , clique em Guardar e, em seguida, feche o ficheiro.

Método 2: Modificar a lista de campos

  1. Inicie o Expression Web e, em seguida, abra a página de Web de exemplo criada neste artigo.
  2. Clique em código para mudar para vista de HTML.
  3. Localize a linha de código semelhante o seguinte código:
    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 seguinte código:
    Const strDisplayFields = "Rank, DocAuthor, DocAppName, DocTitle"
  5. No menu ficheiro , clique em Guardar e, em seguida, feche o ficheiro.
A tabela seguinte lista os valores que pode utilizar para a variável strDisplayFields .
Reduzir esta tabelaExpandir esta tabela
nome do campo tipo de campo Descrição
AcessoData/horaA última vez que o ficheiro foi acedido
CaracterizaçãoTexto/cadeiaCaracterização, ou resumo, do documento como calculado pelo Index Server
CriarData/horaO tempo que o ficheiro foi criado
DirectórioTexto/cadeiaO caminho físico do ficheiro, não incluindo o nome do ficheiro
DocAppNameTexto/cadeiaO nome da aplicação que criou o ficheiro
DocAuthor Texto/cadeiaO autor do documento
DocByteCountNumérico O número de bytes no documento
DocCategoryTexto/cadeiaO tipo de documento, tal como uma nota, agenda ou documentação técnica
DocCharContagem de numéricoO número de caracteres no documento
DocCommentsTexto/cadeiaOs comentários sobre o documento
DocCompanyTexto/cadeiaO nome da empresa para o qual o documento foi escrito
DocCreatedTmData/horaO tempo que o documento foi criado
DocEditTimeData/horaO tempo total que foi gasto a editar o documento
DocHiddenCountNuméricoO número de diapositivos ocultos numa apresentação do Microsoft PowerPoint
DocKeywordsTexto/cadeiaAs palavras-chave documento
DocLastAuthorTexto/cadeiaO utilizador mais recente que editou o documento
DocLastPrintedData/horaA hora em que o documento foi impresso pela última vez
DocLastSavedTmData/hora O tempo que o documento foi guardado pela última vez
DocLineCountNuméricoO número de linhas contidas num documento
DocManagerTexto/cadeiaO nome do Gestor do autor do documento
DocNoteCountNuméricoO número de páginas com notas numa apresentação do PowerPoint
DocPageCountNuméricoO número de páginas no documento
DocParaCountNuméricoO número de parágrafos no documento
DocPartTitlesTexto/cadeiaOs nomes das partes do documento. Por exemplo, no Microsoft Excel, uma folha de cálculo é uma parte do documento. No Microsoft PowerPoint, um diapositivo é uma parte do documento. No Microsoft Word, os nomes de ficheiro dos documentos incluídos num documento principal são partes do documento.
DocPresentationTargetTexto/cadeiaO formato de destino (tal como 35 mm, impressora ou vídeo) para uma apresentação do PowerPoint
DocRevNumberTexto/cadeiaO número de versão actual de um documento
DocSlideCountNuméricoO número de diapositivos numa apresentação do PowerPoint
DocSubjectTexto/cadeiaO assunto do documento
DocTemplateTexto/cadeiaO nome do modelo do documento
DocTitleTexto/cadeiaO título do documento
DocWordCountNuméricoO número de palavras no documento
FileIndexNuméricoO ID exclusivo do ficheiro
NomeFicheiroTexto/cadeiaO nome do ficheiro
HitCountNuméricoO número de visitas ou palavras que correspondam a uma consulta, no ficheiro
CaminhoTexto/cadeiaO caminho físico completo do ficheiro, incluindo nome do ficheiro
ClassificaçãoNuméricoA classificação da linha. Este valor varia entre 0 e 1000. Números maiores indicam uma melhor correspondência.
ShortFileNameTexto/cadeiaO nome de ficheiro (8.3) abreviado
TamanhoNuméricoO tamanho do ficheiro em bytes
VPathTexto/cadeiaO caminho virtual completo do ficheiro, incluindo o nome do ficheiro. Se existir mais do que um caminho possível, é escolhida a melhor correspondência para a consulta específica.
EscritaData/horaA última vez que o ficheiro foi escrito

Resolução de problemas

  • Se o serviço de indexação não estiver em execução, receberá a seguinte mensagem de erro:
    Fornecedor Microsoft OLE DB para o serviço de indexação erro '80041820' serviço não está em execução. / IndexServerTest.asp, linha 44
    Para resolver este problema, inicie o serviço de indexação.
  • Se especificar um catálogo que não é válido, que recebe uma mensagem de erro semelhante a seguinte mensagem de erro:
    Fornecedor Microsoft OLE DB para o serviço de indexação erro '8004181d' não é nenhum catálogo. / IndexServerTest.asp, linha 44
    Para resolver este problema, verifique o valor da variável strDataSource . Se estiver correcto, 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 números de artigo que se seguem para visualizar os artigos na base de dados de conhecimento da Microsoft:
185985Utilizar o Index Server para consultar e apresentar informações META TAG
256276Mensagem de erro: não existe nenhum catálogo
229282Código ASP está visível quando vir a origem de uma página de resultados do Index Server

Propriedades

Artigo: 928700 - Última revisão: 11 de dezembro de 2006 - Revisão: 1.0
A informação contida neste artigo aplica-se a:
  • Microsoft Expression Web
Palavras-chave: 
kbmt kbexpertiseinter kbhowto KB928700 KbMtpt
Traduçã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 revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 928700

Submeter comentários

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com