Visão geral do Windows Search

O Windows Search é uma plataforma de pesquisa na área de trabalho que tem recursos de pesquisa instantânea para os tipos de arquivo e de dados mais comuns, e desenvolvedores de terceiros podem estender esses recursos para novos tipos de arquivo e tipos de dados.

Este tópico é organizado da seguinte maneira:

Introdução

O Windows Search é um componente padrão do Windows 7 e do Windows Vista e está habilitado por padrão. O Windows Search substitui o WDS (Windows Desktop Search), que estava disponível como um suplemento para Windows XP e Windows Server 2003.

O Windows Search é composto por três componentes:

Serviço Windows Search

O WSS organiza os recursos extraídos de uma coleção de documentos. O Protocolo do Windows Search permite que um cliente se comunique com um servidor que esteja hospedando um WSS, tanto para emitir consultas quanto para permitir que um administrador gerencie o servidor de indexação. Ao processar arquivos, o WSS analisa um conjunto de documentos, extrai informações úteis e, em seguida, organiza as informações extraídas para que as propriedades desses documentos possam ser retornadas com eficiência em resposta a consultas.

Uma coleção de documentos que podem ser consultados inclui um catálogo, que é a unidade de nível mais alto da organização no Windows Search. Um catálogo representa um conjunto de documentos indexados que podem ser consultados. Um catálogo consiste em uma tabela de propriedades com o texto ou valor e o local correspondente (localidade) armazenados em colunas da tabela. Cada linha da tabela corresponde a um documento separado no escopo do catálogo, e cada coluna da tabela corresponde a uma propriedade. Um catálogo pode conter um índice invertido (para correspondência rápida de palavras) e um cache de propriedades (para recuperação rápida de valores de propriedade).

O processo de indexador é implementado como um serviço Windows em execução na conta LocalSystem e está sempre em execução para todos os usuários (mesmo que nenhum usuário esteja conectado), o que permite que o Windows Search realize o seguinte:

  • Mantenha um índice compartilhado entre todos os usuários.
  • Mantenha restrições de segurança no acesso ao conteúdo.
  • Processe consultas remotas de computadores cliente na rede.

O serviço Pesquisa foi projetado para proteger a experiência do usuário e o desempenho do sistema durante a indexação. As seguintes condições fazem com que o serviço limite ou pause a indexação:

  • Alto uso da CPU por processos não relacionados à pesquisa.
  • Alta taxa de E/S do sistema, incluindo leituras e gravações de arquivos, E/S de arquivo de paginação e cache de arquivos e E/S de arquivos mapeados.
  • Baixa disponibilidade de memória.
  • Baixa duração da bateria.
  • Pouco espaço em disco na unidade que armazena o índice.

Plataforma de desenvolvimento

A maneira preferencial de acessar as APIs de Pesquisa e criar aplicativos do Windows Search é por meio de uma fonte de dados Shell. Uma fonte de dados do Shell é um componente usado para estender o namespace do Shell e expor itens em um armazenamento de dados. Um armazenamento de dados é um repositório de dados. Um armazenamento de dados pode ser exposto ao modelo de programação do Shell como um contêiner que usa uma fonte de dados do Shell. Os itens em um armazenamento de dados podem ser indexados pelo sistema de Windows Search usando um manipulador de protocolo.

Por exemplo, ISearchFolderItemFactory é um componente que pode criar instâncias da fonte de dados da pasta de pesquisa, que é um tipo de fonte de dados "virtual" fornecida pelo Shell que pode executar consultas sobre outras fontes de dados no namespace do Shell e enumerar resultados. Ele pode fazer isso usando o indexador ou enumerando e inspecionando manualmente itens nos escopos especificados. Essa interface permite que você configure os parâmetros da pesquisa usando métodos que criam e modificam pastas de pesquisa. Se os métodos dessa interface não forem chamados, os valores padrão serão usados.

O acesso ao recurso Windows Search indiretamente por meio do modelo de dados do Shell é preferido porque ele fornece acesso à funcionalidade completa do Shell no nível do modelo de dados do Shell. Por exemplo, você pode definir o escopo de uma pesquisa para uma biblioteca (que é um recurso disponível no Windows 7 e versões posteriores) para usar as pastas da biblioteca como o escopo da consulta. Em seguida, o Windows Search agrega os resultados da pesquisa desses locais se eles estiverem em índices diferentes (se as pastas estiverem em computadores diferentes). A camada de dados do Shell também cria uma exibição mais completa das propriedades dos itens, sintetizando alguns valores de propriedade. Ela também fornece acesso a recursos de pesquisa para armazenamentos de dados que não são indexados pelo Windows Search. Por exemplo, você pode pesquisar um dispositivo de armazenamento USB (barramento serial universal), um dispositivo portátil que usa o protocolo MTP ou um servidor FTP por meio das fontes de dados Shell que fornecem acesso a esses sistemas de armazenamento. Isso garante uma melhor experiência do usuário.

O Windows Search tem um cache de valores de propriedade que é usado na implementação do WSS (Serviço Windows Search). Esses valores de propriedade podem ser consultados programaticamente usando o provedor OLE DB do Windows Search ou por meio de ISearchFolderItemFactory, que representa itens em resultados de pesquisa e exibições baseadas em consulta. Em seguida, o Windows Search coleta e armazena propriedades emitidas por manipuladores de filtro ou de propriedade quando um item, como um documento do Word, é indexado. Esse repositório é descartado e recriado quando o índice é recriado.

Os desenvolvedores de terceiros podem criar aplicativos que consomem os dados no índice por meio de consultas programáticas e podem estender os dados no índice para tipos de arquivo e item personalizados a serem indexados pelo Windows Search. Caso queira exibir os resultados da consulta no Windows Explorer, implemente uma fonte de dados do Shell antes de criar um manipulador de protocolo para estender o índice. No entanto, se todas as consultas forem programáticas (por meio do OLE DB, por exemplo) e interpretadas pelo código do aplicativo em vez do Shell, um namespace do Shell, embora ainda preferencial, não será necessário.

Um manipulador de protocolo é necessário para que o Windows obtenha informações sobre o conteúdo do arquivo, como itens em bancos de dados ou tipos de arquivo personalizados. Embora o Windows Search possa indexar o nome e as propriedades do arquivo, o Windows não tem informações sobre o conteúdo do arquivo. Como resultado, esses itens não podem ser indexados ou expostos no Shell do Windows. Ao implementar um manipulador de protocolo personalizado, você pode expor esses itens. Para obter uma lista de manipuladores identificados pelo cenário de desenvolvedor que está tentando conseguir, consulte "Visão geral dos manipuladores" no Windows Search como uma Plataforma de Desenvolvimento.

Observação

Às vezes, uma fonte de dados do Shell é conhecida como uma extensão de namespace do Shell. Às vezes, um manipulador é conhecido como uma extensão Shell ou um manipulador de extensão Shell.

 

Interface do Usuário

No Windows Vista e posterior, o Windows Search é integrado em todas as janelas do Windows Explorer para acesso instantâneo à pesquisa. Isso permite que os usuários pesquisem rapidamente arquivos e itens por nome de arquivo, propriedades e conteúdo de texto completo. Os resultados também podem ser filtrados ainda mais para refinar a pesquisa. Aqui estão outros recursos do Windows Search:

  • Uma caixa de pesquisa instantânea em cada janela permite a filtragem instantânea de todos os itens atualmente em exibição. As caixas de pesquisa instantânea aparecem no menu Iniciar para procurar programas ou arquivos e no canto superior direito de todas as janelas do Windows Explorer para filtrar os resultados exibidos. A pesquisa instantânea também está integrada em outros recursos do Windows, como o Windows Media Player, para localizar arquivos relacionados.
  • Os documentos podem ser marcados com palavras-chave para agrupá-los por critérios personalizados definidos pelo usuário. As tags são itens de metadados atribuídos pelo usuário ou aplicativos para facilitar a localização de arquivos com base em palavras-chave que podem não estar no nome ou no conteúdo do item. Por exemplo, um conjunto de imagens pode ser marcado como "Arizona Vacation 2009" para recuperar rapidamente mais tarde, procurando qualquer uma das palavras incluídas.
  • Os cabeçalhos de coluna aprimorados nos modos de exibição do Windows Explorer permitem classificar e agrupar documentos de maneiras diferentes. Por exemplo, os arquivos podem ser classificados de acordo com nome, data de modificação, tipo, tamanho e marcas. Os documentos também podem ser agrupados de acordo com qualquer uma dessas propriedades e cada grupo pode ser filtrado (oculto ou exibido) conforme desejado.
  • Os documentos podem ser empilhados de acordo com nome, data de modificação, tipo, tamanho e marcas. As pilhas incluem todos os documentos que têm a propriedade especificada e estão localizados em qualquer subpasta da pasta selecionada.
  • As pesquisas podem ser salvas (para serem recuperadas posteriormente) clicando no botão Salvar Pesquisa no painel de pesquisa no Windows Explorer. Os resultados serão preenchidos dinamicamente com base nos critérios originais quando a pesquisa salva for aberta. Para obter instruções, consulte Salvar os Resultados da Pesquisa.
  • Os manipuladores de visualização e de miniaturas permitem que os usuários visualizem documentos no Windows Explorer sem precisar abrir o aplicativo que os criou.

Pré-requisitos técnicos

Antes de começar a ler a documentação do SDK do Windows Search, você deve ter uma compreensão fundamental dos seguintes conceitos:

  • Como implementar uma fonte de dados Shell.
  • Como implementar um manipulador.
  • Como trabalhar em código nativo.

Uma fonte de dados do Shell é um componente usado para estender o namespace do Shell e expor itens em um armazenamento de dados. No passado, a fonte de dados do Shell era chamada de extensão de namespace do Shell. Um manipulador é um objeto COM (Component Object Model) que fornece funcionalidade para um item de Shell. Para obter uma lista de manipuladores identificados pelo cenário de desenvolvedor que está tentando conseguir, consulte "Visão geral dos manipuladores" no Windows Search como uma Plataforma de Desenvolvimento.

Para obter mais informações sobre o assembly de interoperabilidade do SDK do Windows Search para trabalhar com objetos COM expostos pelo Windows Search e outros programas que usam código gerenciado, consulte Como Usar Código Gerenciado com Dados do Shell e Windows Search. No entanto, observe que filtros, manipuladores de propriedade e de protocolo devem ser escritos em código nativo. Isso ocorre devido a possíveis problemas de controle de versão CLR (Common Language Runtime) com o processo em que vários suplementos são executados. Os desenvolvedores que são novos no C++ podem começar com o Centro de Desenvolvedores do Visual C++ e Centro de Boas-Vindas de Desenvolvimento do Windows.

Download e conteúdo do SDK

Além de atender aos pré-requisitos técnicos listados, você também deve baixar o SDK do Windows para obter as bibliotecas do Windows Search. Os Exemplos de código do Windows Search contêm exemplos de código úteis e um assembly de interoperabilidade para desenvolvimento com código gerenciado.

Documentação do SDK do Windows Search

O conteúdo da documentação do SDK do Windows Search é o seguinte:

O Windows Search substitui o WDS (Windows Desktop Search), que estava disponível como um suplemento para Windows XP e Windows Server 2003. O WDS substituiu o Serviço de Indexação herdado de versões anteriores do Windows com aprimoramentos de desempenho, usabilidade e extensibilidade. A nova plataforma de desenvolvimento dá suporte a requisitos que produzem um sistema mais seguro e estável. Embora a nova plataforma de consulta não seja compatível com o Microsoft Windows Desktop Search (WDS) 2.x, filtros e manipuladores de protocolo escritos para versões anteriores do WDS podem ser atualizados para funcionar com o Windows Search. O Windows Search também dá suporte a um novo sistema de propriedades. Para obter informações sobre filtros, manipuladores de propriedades e de protocolo, consulte Como Estender o Índice.

O Windows Search é integrado ao Windows Vista e posterior e está disponível como uma atualização redistribuível para o WDS 2.x, para oferecer suporte aos seguintes sistemas operacionais:

  • Versões de 32 bits do Windows XP com Service Pack 2 (SP2).
  • Todas as versões baseadas em x64 do Windows XP.
  • Windows Server 2003 com Service Pack 1 (SP1) e posterior.
  • Todas as versões baseadas em x64 do Windows Server 2003.

Os sistemas que executam esses sistemas operacionais devem ter o Windows Search instalado para executar aplicativos escritos para o Windows Search.

Recursos adicionais

Windows Search como uma plataforma de desenvolvimento

Idiomas Compatíveis com o Windows Search

Usar código gerenciado com os dados do Shell e do Windows Search