Como: de forma programática exportar o histórico de rastreamento para um arquivo CSV
Pesquisa da empresa no Microsoft Office do SharePoint Server 2007 faixas rastrear estatísticas, incluindo o seguinte:
Tipo de rastreamento (completo ou incremental)
Rastrear hora de início e hora de término
Origem do conteúdo associado com a rastrear
Número de itens rastreados com êxito e o número de avisos e erros ocorridos
You can use the Search Administration object model to retrieve this information by using the Microsoft.Office.Server.Search.Administration.CrawlHistory class. Esta classe contém o GetCrawlHistory função GetCrawlHistory, que retorna a estatística rastrear em um objeto DataTable DataTable.
O seguinte procedimento mostra como gravar o conteúdo da tabela de histórico rastrear para um arquivo (.csv) valores separados por vírgula. Você pode então aberto esse arquivo em um aplicativo such as Microsoft Office Excel para análise posteriormente.
Para exportar o histórico rastrear para um arquivo .csv de um aplicativo console
Microsoft Visual Studio, no menu Arquivo , apontar para nova e, em seguida, clique em Project .
Em , C# , clique em Tipos Project Windows .
modelos , clique em Console Application . No campo nome, tipo CrawlHistorySample e, em seguida, clique OK .
O menu do projeto, clique em Adicionar Referência .
Na guia .NET, selecione a seguinte referências e, em seguida, clique OK :
Componente Microsoft Search (Microsoft.Office.Server.Search.dll)
Componente Microsoft Office Server (Microsoft.Office.Server.dll)
Os serviços SharePoint Windows (Microsoft.SharePoint.dll)
No arquivo classe do seu aplicativo de console, adicionar o seguinte using instruções perto de parte superior da codificar Using com as outras diretivas de espaço para nome.
using System.IO; using System.Data; using Microsoft.SharePoint; using Microsoft.Office.Server.Search.Administration;
Crie uma função para gravar informações de uso para o janela do console.
static void Usage() { Console.WriteLine("Export Crawl History to CSV File Sample"); Console.WriteLine("Usage: CrawlHistorySample.exe SiteURL OutputPath OutputName"); Console.WriteLine(@"Example: CrawlHistorySample.exe http://MySearchServer c:\logfiles\ CrawlHistoryLog1"); }
No Main principal função do aplicativo de console, adicionar o seguinte codificar para tentar aberto um try bloco.
try {
Adicionar codificar para verificar o número de itens de parâmetro args[] args []; Esse número deve ser igual a 3. Se ele não, em seguida, chamar o Usage função uso definido na etapa 7.
if (args.Length != 3) { Usage(); return; }
Recuperar os valores especificados no parâmetro args[] args [], ser usado para especificar o site centralizar pesquisa URL, a saída caminho e nome para o arquivo .csv.
string strURL = args[0]; string csvPath = args[1] + "\\" + args[2] + ".csv";
Adicione o seguinte codificar para recuperar o SearchContext.
SearchContext context; using (SPSite site = new SPSite(strURL)) { context = SearchContext.GetContext(site); }
Recuperar o histórico rastrear em um objeto DataTableT:System.Data.DataTable DataTableT:System.Data.DataTable usando a seguinte codificar.
CrawlHistory history = new CrawlHistory(context); DataTable table = new DataTable(); table = history.GetCrawlHistory();
Adicione o seguinte codificar para inicializar o objeto StreamWriterT:System.IO.StreamWriter StreamWriterT:System.IO.StreamWriter.
using (StreamWriter writer = new StreamWriter(csvPath)) { /* Code to iterate through DataTable rows, and write out the values to the .csv file See steps 14 through 17. */
Recupere o número de colunas, da seguinte maneira.
int colCount = table.Columns.Count;
Escreva os nomes coluna para transmitir o arquivo, com uma vírgula seguinte cada nome, Except for o nome da coluna última e em seguida, escrever uma nova linha para transmitir o arquivo, as follows.
for (int i = 0; i < colCount; i++) { writer.Write(table.Columns[i].ToString()); if (i < colCount - 1) { writer.Write(","); } } writer.Write(writer.NewLine);
Percorrer a coleção de linhas e escrever fora cada valor coluna para transmitir o arquivo, com uma vírgula seguinte cada valor. Escreva uma nova linha para transmitir o arquivo no final de linha antes de mover para o próximo linha.
foreach (DataRow row in table.Rows) { for (int i = 0; i < colCount; i++) { writer.Write(row[i].ToString()); if (i < colCount - 1) { writer.Write(","); } } writer.Write(writer.NewLine); }
Liberar o conteúdo de transmitir o arquivo, fechar e, em seguida, fechar o using e o try bloco, tente como segue.
writer.Flush(); writer.Close(); } }
Adicione o seguinte codificar para o bloco catch capturar.
catch (Exception ex) { Console.WriteLine(ex.ToString()); Usage(); }
Exemplo
Este é o completo codificar para a classe aplicativo console CrawlHistorySample.
using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
using System.Data;
using Microsoft.Office.Server.Search.Administration;
using Microsoft.SharePoint;
namespace CrawlHistorySample
{
class Program
{
static void Main(string[] args)
{
try
{
if (args.Length != 3)
{
Usage();
return;
}
string strURL = args[0];
string csvPath = args[1] + "\\" + args[2] + ".csv";
SearchContext context;
using (SPSite site = new SPSite(strURL))
{
context = SearchContext.GetContext(site);
}
CrawlHistory history = new CrawlHistory(context);
DataTable table = new DataTable();
table = history.GetCrawlHistory();
using (StreamWriter writer = new StreamWriter(csvPath, false))
{
int colCount = table.Columns.Count;
for (int i = 0; i < colCount; i++)
{
writer.Write(table.Columns[i].ToString());
if (i < colCount - 1)
{
writer.Write(",");
}
}
writer.Write(writer.NewLine);
foreach (DataRow row in table.Rows)
{
for (int i = 0; i < colCount; i++)
{
writer.Write(row[i].ToString());
if (i < colCount - 1)
{
writer.Write(",");
}
}
writer.Write(writer.NewLine);
}
writer.Flush();
writer.Close();
}
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
Usage();
}
}
static void Usage()
{
Console.WriteLine("Export Crawl History to CSV File Sample");
Console.WriteLine("Usage: CrawlHistorySample.exe SiteURL OutputPath OutputName");
Console.WriteLine(@"Example: CrawlHistorySample.exe http://MySearchServer c:\logfiles\ CrawlHistoryLog1");
}
}
}
Consulte também
Outros recursos
Guia de Introdução com o modelo de objeto de administração de pesquisa da empresa
Como a: Return o contexto de pesquisa para o provedor de serviço de pesquisa