Compartilhar via


Walkthrough: criando uma Web Part de pesquisa da empresa personalizado

Com Pesquisa da empresa no Microsoft Office do SharePoint Server 2007, você pode personalizar o aspecto e a funcionalidade das páginas do Centro de Pesquisa e Web Parts a partir de navegador. No entanto, se você desejar fazer personalizações que não são possíveis por meio de navegador, você pode criar personalizado Web Parts que usam a modelo de objeto de Consulta para executar consultas no componente de pesquisa.

Este explicação passo a passo, você criará um personalizado pesquisa Web Part e adicioná-lo para seu site. A Web Part descrito neste explicação passo a passo fornece funcionalidade pesquisa muito básico.

Esta explicação passo a passo aborda o seguinte tarefas:

  • Criando o projeto para a Web Part

  • A codificação a Web Part

  • Implantando a Web Part

Pré-requisitos

Para executar este explicação passo a passo, será necessário o seguinte:

  • Microsoft Visual Studio 2005 instalado no seu computador desenvolvimento

  • Microsoft Office do SharePoint Server 2007 instalado no seu computador desenvolvimento

  • Permissões para criar e modificar páginas para o site Search Center

Configurando o projeto de pesquisa personalizada da Web Part

Para criar o projeto para a Web Part

  1. 2005 Visual Studio, no menu Arquivo , apontar para nova e, em seguida, clique em Project .

  2. Em , C# , clique em Tipos Project Windows .

  3. Em modelos , selecione Biblioteca de controle da Web . No campo nome, tipo CustomSearchWebPart e, em seguida, clique OK .

Em seguida você deve adicionar o exigido referências ao seu projeto Web Part.

Dica

O com suporte configuração ambiente de desenvolvimento para Microsoft Office do SharePoint Server 2007 é desenvolver localmente em um servidor com Microsoft Office do SharePoint Server 2007 instalado.

Para adicionar referências ao projeto CustomSearchWebPart

  1. O menu do projeto, clique em Adicionar Referência .

  2. Na guia .NET, selecione cada uma do seguinte faz referência e, em seguida, clique OK após cada seleção:

    • System.Data

    • System.XML

    • Microsoft.SharePoint

    • Microsoft.Office.Server

    • Microsoft.Office.Server.Search

Antes de adicionar codificar para o Web Part, substituir o arquivo classe usar como padrão com um novo arquivo classe.

Para criar o arquivo classe para a Web Part

  1. Gerenciador de Soluções , clique com o botão direito do mouse WebCustomControl1.cs e, em seguida, clique em para excluir remover a classe usar como padrão criado com o projeto.

  2. O menu **** do projeto, clique em Add New Item .

  3. In the Add New Item dialog box, click Web Custom Control, type clsSearchQuery.cs, and then click Add.

Escrever o código personalizado de pesquisa da Web Part

Agora, você modificará a codificar usar como padrão incluída no novo arquivo classe.

Para modificar a codificar usar como padrão em clsSearchQuery

  1. Adicione o seguinte diretivas Namespace perto de parte superior da codificar em clsSearchQuery.cs:

    using System.Drawing;
    using System.Data;
    using System.Xml;
    using System.Xml.Serialization;
    using Microsoft.SharePoint.WebPartPages;
    using Microsoft.Office.Server;
    using Microsoft.Office.Server.Search.Query;
    
  2. Na seguinte linha codificar, substituir WebControlWebPart com:

    public class clsSearchQuery : WebControl
    
  3. Adicione a seguinte linha de codificar acima o declaração de classe para clsSearchQuery:

    [XmlRoot(Namespace = "CustomSearchWebPart")]
    

Agora você está pronto para gravar a codificar consulta o componente pesquisa e em seguida, processar o conteúdo a Web Part.

Para adicionar controles filho da Web Part e processá-los

  1. Adicione o seguinte codificar abaixo de declaração de classe:

            Button cmdSearch;
            TextBox txtQueryText;
            Label lblQueryResult;
            DataGrid grdResults;
    
  2. Substituir o CreateChildControls CreateChildControls método usando a seguinte codificar:

    protected override void CreateChildControls()
            {
                Controls.Clear();
                txtQueryText = new TextBox();
                this.Controls.Add(txtQueryText);
                cmdSearch = new Button();
                cmdSearch.Text = "Start Search";
                cmdSearch.Click += new EventHandler(cmdSearch_Click);
                this.Controls.Add(cmdSearch);
                lblQueryResult = new Label();
                this.Controls.Add(lblQueryResult);
            }
    
  3. Adicionar um evento clique para cmdSearch , usando o seguinte codificar:

            void cmdSearch_Click(object sender, EventArgs e)
            {
                if (txtQueryText.Text != string.Empty)
                {
                  keywordQueryExecute(txtQueryText.Text);
                }
                else
                {
                  lblQueryResult.Text = "You must enter a search word.";
                }
              }
    

Agora você está pronto para adicionar a codificar para acessar o modelo objeto de consulta. Esta amostra de código usa a classe Microsoft.Office.Server.Search.Query.KeywordQuery T:Microsoft.Office.Server.Search.Query.KeywordQuery para executar a consulta pesquisa, passando o objeto Microsoft.Office.Server.ServerContext Microsoft.Office.Server.ServerContext para o valor do parâmetro. Consulta de pesquisa é uma consulta simples palavra-chave que procura resultados onde o Author autor corresponde a termo da pesquisa.

Para executar a consulta palavra-chave

  1. Adicione o seguinte codificar a classe clsSearchQuery clsSearchQuery:

    private void keywordQueryExecute(string strQueryText)
            {
                KeywordQuery kRequest = new KeywordQuery(ServerContext.Current);
                string strQuery = "author:" + strQueryText;
                kRequest.QueryText = strQuery;
                //to return relevant results
                kRequest.ResultTypes |= ResultType.RelevantResults;
                ResultTableCollection resultTbls = kRequest.Execute();
                if ((int)ResultType.RelevantResults != 0)
                {
                    ResultTable tblResult = resultTbls [ResultType.RelevantResults];
                    if (tblResult.TotalRows == 0)
                    {
                      lblQueryResult.Text = "No Search Results Returned.";
                    }
                    else
                    {
                        ReadResultTable(tblResult);
                    }
    
                }
    }
    
  2. Para ler a pesquisa resulta dados, a keywordQueryExecute ReadResultTable método chama o método ReadResultTable keywordQueryExecute. Adicione o seguinte codificar para ReadResultTable:

    void ReadResultTable(ResultTable rt)
            {
                DataTable relResultsTbl = new DataTable();
                relResultsTbl.TableName = "Relevant Results";
                DataSet ds = new DataSet("resultsset");
                ds.Tables.Add(relResultsTbl);
                ds.Load(rt,LoadOption.OverwriteChanges,relResultsTbl);
                fillResultsGrid(ds);
            }
    
  3. O ReadResultTable ReadResultTable método chama o método fillResultsGrid fillResultsGrid para BIND de pesquisa resulta DataSet para o grdResults DataGrid. Adicione a codificar para fillResultsGrid:

    private void fillResultsGrid(DataSet grdDs)
            {
    //Instantiate the DataGrid, and set the DataSource
                grdResults = new DataGrid();
                grdResults.DataSource = grdDs;
    //Set the display properties for the DataGrid.
                grdResults.GridLines = GridLines.None;
                grdResults.CellPadding = 4;
                grdResults.Width = Unit.Percentage(100);
                grdResults.ItemStyle.ForeColor = Color.Black;
                grdResults.ItemStyle.BackColor = Color.AliceBlue;
                grdResults.ItemStyle.Font.Size = FontUnit.Smaller;
                grdResults.ItemStyle.Font.Name = "Tahoma";
                grdResults.HeaderStyle.BackColor = Color.Navy;
                grdResults.HeaderStyle.ForeColor = Color.White;
                grdResults.HeaderStyle.Font.Bold = true;
                grdResults.HeaderStyle.Font.Name = "Tahoma";
                grdResults.HeaderStyle.Font.Size = FontUnit.Medium;
    
    /*Turn off AutoGenerate for the columns, so that the DataGrid
    doesn't automatically bind to all of the columns
    in the search results set.
    Then create and configure only the columns you want to
    include in the DataGrid.
    */
                grdResults.AutoGenerateColumns = false;
                HyperLinkColumn colTitle = new HyperLinkColumn();
                colTitle.DataTextField = "Title";
                colTitle.HeaderText = "Title";
                colTitle.DataNavigateUrlField = "Path";
                grdResults.Columns.Add(colTitle);
                BoundColumn colAuthor = new BoundColumn();
                colAuthor.DataField = "Author";
                colAuthor.HeaderText = "Author";
                grdResults.Columns.Add(colAuthor);
    //Bind the data to the DataGrid
                grdResults.DataBind();
    //Add the DataGrid to the controls
                Controls.Add(grdResults);
            }
    

Implantando o Web Part de Pesquisa personalizada

Porque o personalizar Web Part que você cria a partir neste exemplo de pesquisa não é de alta segurança-nomeado, não é possível implantá-lo para o cache global de assemblies. Você deve implantá-lo para o Diretório _app_bin para seu site.

Para implantar o Custom Search Web Part para seu site

  1. Copie CustomSearchWebPart.dll para Diretório _bin do seu site. O caminho será semelhante a seguinte:

    \Inetpub\wwwroot\wss\VirtualDirectories\Site\_app_bin
    

    Dica

    Se você não souber o caminho do aplicativo para seu site, você pode verificar isso no Internet Services Manager.

  2. Abra o console Internet Services Manager, expansão o nó Web Sites, clique com o botão direito do mouse o aplicativo de site e, em seguida, clique propriedades .

  3. Clique na guia Home Directory.

    O campo **** caminho local contém o caminho para o aplicativo.

Para registrar o Custom Search Web Part como uma SafeControl

  1. Abra o arquivo web.config para o site desejar para adicionar parte da pesquisa personalizada para. Você pode localizar este arquivo na pasta de raiz para o site.

  2. Add the following <SafeControl/> tag to the <SafeControls> </SafeControls> section of the web.config:

    <SafeControl Assembly="CustomSearchWebPart, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" Namespace="CustomSearchWebPart" Typename="*" Safe="True" />
    
  3. Salvar suas alterações e então fechar o arquivo web.config.

Para criar o arquivo definição Custom Search Web Part

  1. Abra um novo arquivo em um editor de texto such as Bloco de Notas e adicionar o seguinte codificar XML para o arquivo:

    <?xml version="1.0"?>
    <WebPart xmlns="https://schemas.microsoft.com/WebPart/v2">
       <Assembly>CustomSearchWebPart, Version=1.0.0.0, Culture=Neutral, PublicKeyToken=null</Assembly>
       <TypeName>CustomSearchWebPart.clsSearchQuery</TypeName>
       <Title>Custom Search Web Part</Title>
    </WebPart>
    
  2. Nomeie o arquivo CustomSearchWebPart.dwp e, em seguida, salvá-lo.

    Dica

    Se você não estiverem funcionando no servidor de O Office SharePoint Server 2007 ossossshort, em seguida, para completo essa etapa você deve copiar o arquivo para um servidor O Office SharePoint Server 2007 ossossshort.

Para registrar o Custom Search Web Part como uma SafeControl

  1. Abra o arquivo web.config para o site desejar para adicionar parte da pesquisa personalizada para.

  2. Add the following <SafeControl/> tag to the <SafeControls> section of the web.config:

    <SafeControl Assembly="CustomSearchWebPart, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" Namespace="CustomSearchWebPart" Typename="*" Safe="True" />
    

Para implantar o Custom Search Web Part para seu site

  • Copie CustomSearchWebPart.dll para Diretório _bin do seu site. O caminho será semelhante a seguinte:

    \Inetpub\wwwroot\wss\VirtualDirectories\Site
    

Próxima etapas

Você pode localizar o completo codificar para o exemplo classe clsSearchQuery clsSearchQuery em Código de exemplo: personalizado da empresa de pesquisa da Web Part.

Após implantar a Web Part, você estará pronto para testá-lo.

Para testar a Custom Search Web Part

  1. Abra o site Search Center no seu navegador, clique o menu Site Actions e, em seguida, clique Criar Página .

  2. No campo URL Name, tipo customsearchwebparttest .

  3. No campo título, tipo Test Page para Custom Search Web Part .

  4. No Page Layout lista, selecione (Welcome Page) de página de pesquisa .

  5. Para criar a página, clique criar .

  6. Com o aberto página customsearchwebparttest.aspx no navegador, clique o adicionar um link Web Part na zona da parte superior.

  7. A Add Web Parts diálogo caixa, clique no link Advanced Web Part galeria e opções.

  8. Clique no link **** Procurar e, em seguida, clique importar .

  9. Clique em Procurar , navegar para a localidade onde você salvou CustomSearchWebPart.dwp, selecione-lo e, em seguida, clique abrir .

    Agora, você deve ver o Web Part de Pesquisa personalizada na caixa de diálogo. Você pode arrastá-la até a página para usá-lo.

Consulte também

Referência

Microsoft.Office.Server.Search.Query.KeywordQuery

Outros recursos

Walkthrough: Criando uma Parte da Web ASP.NET para o exemplo de aplicativos de dados AdventureWorks Business
Guia de Introdução com Web Parts de Pesquisa da empresa personalizado
Visão geral da empresa de pesquisa da consulta de objetos do modelo
Empresa de pesquisa de palavras-chave sintaxe referência