Visão geral do Windows Search
O Windows Search é uma plataforma de pesquisa na área de trabalho que possui recursos de pesquisa instantânea para os tipos de arquivo e tipos de dados mais comuns, e desenvolvedores de terceiros podem estender esses recursos para novos tipos de arquivo e tipos de dados.
Este tópico está organizado da seguinte forma:
- Introdução
- Pré-requisitos técnicos
- Documentação do SDK do Windows Search
- Histórico do Windows Search
- Recursos adicionais
- Tópicos relacionados
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 Windows Desktop Search (WDS), que estava disponível como um suplemento para o Windows XP e o Windows Server 2003.
O Windows Search é composto por três componentes:
Serviço Windows Search
O WSS organiza as características extraídas de uma coleção de documentos. O Protocolo Windows Search permite que um cliente se comunique com um servidor que hospeda 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 de forma eficiente em resposta a consultas.
Uma coleção de documentos que podem ser consultados compreende um catálogo, que é a unidade de organização de mais alto nível 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 indexação é implementado como um serviço do 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.
- Processar consultas remotas de computadores clientes na rede.
O serviço de 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 acelere 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 arquivos de paginação e cache de arquivos, e E/S de arquivos mapeados.
- Baixa disponibilidade de memória.
- Bateria de fraca duração.
- Pouco espaço em disco na unidade que armazena o índice.
Plataforma de Desenvolvimento
A maneira preferida de acessar as APIs de Pesquisa e criar aplicativos do Windows Search é por meio de uma fonte de dados do 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 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 os 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.
Acessar o recurso Windows Search indiretamente por meio do modelo de dados do Shell é preferível 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 posterior) para usar as pastas da biblioteca como o escopo da consulta. Em seguida, o Windows Search agrega os resultados da pesquisa desses locais se 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. Ele 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 (Universal Serial Bus), um dispositivo portátil que usa o protocolo MTP ou um servidor FTP (File Transfer Protocol) por meio das fontes de dados do 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 Windows Search Service (WSS). Esses valores de propriedade podem ser consultados programaticamente usando o provedor OLE DB do Windows Search ou por meio 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 manipuladores de propriedade quando um item, como um documento do Word, é indexado. Este armazenamento é eliminado e reconstruído 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. Se quiser mostrar os resultados da consulta no Windows Explorer, você deve implementar 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 ainda será preferido, mas não 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 você está tentando alcançar, consulte "Visão geral de manipuladores" em Windows Search como uma plataforma de desenvolvimento.
Observação
Uma fonte de dados do Shell às vezes é conhecida como uma extensão de namespace do Shell. Um manipulador às vezes é conhecido como uma extensão Shell ou um manipulador de extensão Shell.
Interface do usuário
No Windows Vista e versões posteriores, 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 para refinar a pesquisa. Aqui estão mais alguns 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 ficheiros e no canto superior direito de todas as janelas do Explorador do Windows para filtrar os resultados apresentados. A pesquisa instantânea também está integrada em algumas outras funcionalidades do Windows, como o Windows Media Player, para encontrar ficheiros relacionados.
- Os documentos podem ser marcados com palavras-chave para agrupá-los por critérios personalizados que são 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 por qualquer uma das palavras incluídas.
- Os cabeçalhos de coluna melhorados nas vistas do Explorador do Windows permitem ordenar e agrupar documentos de formas diferentes. Por exemplo, os arquivos podem ser classificados de acordo com nome, data de modificação, tipo, tamanho e tags. 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 tags. As pilhas incluem todos os documentos que têm a propriedade especificada e estão localizados em qualquer subpasta dentro da pasta selecionada.
- As pesquisas podem ser guardadas (para serem recuperadas mais tarde) clicando no botão Guardar Pesquisa no painel de pesquisa no Explorador do Windows. Os resultados serão preenchidos dinamicamente com base nos critérios originais quando a pesquisa salva for aberta. Para obter instruções, consulte Guardar os resultados da pesquisa.
- Os manipuladores de visualização e os manipuladores 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 do 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 do Shell. Para obter uma lista de manipuladores identificados pelo cenário de desenvolvedor que você está tentando alcançar, consulte "Visão geral de manipuladores" em Windows Search como uma plataforma de desenvolvimento.
Para 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, veja Usando código gerenciado com dados do Shell e Windows Search. No entanto, observe que filtros, manipuladores de propriedade e manipuladores de protocolo devem ser escritos em código nativo. Isso ocorre devido a possíveis problemas de versão do Common Language Runtime (CLR) com o processo em que múltiplos add-ins são executados. Os desenvolvedores que são novos em C++ podem começar com o Visual C++ Developer Center e Windows Development Getting Started.
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 Windows Search Code Samples contêm exemplos de código úteis e um assembly de interoperabilidade para desenvolvimento com código .NET gerido.
Documentação do SDK do Windows Search
O conteúdo da documentação do SDK do Windows Search é o seguinte:
Windows Search como plataforma de desenvolvimento
Descreve os principais cenários de desenvolvimento no Windows Search. Fornece uma lista de gestores identificados pelo cenário de desenvolvimento que está a tentar alcançar, diretrizes de instalação de suplementos e notas de implementação.
Guia do Desenvolvedor do Windows Search
Fornece explicações para Gerenciando o índice, Consultando o índice programaticamente, Estendendo o índicee Estendendo recursos de linguagem.
-
Documenta as seguintes categorias de interfaces do Windows Search: Protocol Handlers, Querying, Crawl Scope, Data Add-ins, Index Managemente Notifications. A documentação de referência também inclui Constantes e Enumerações, Estruturas, Mapeamentos de Propriedades, e o Formato de Arquivo de Pesquisa Salvo.
Exemplos de código do Windows Search
Descreve os exemplos de código da API de pesquisa que estão disponíveis.
-
Descreve o suporte do Windows 7 para federação de pesquisa para armazenamentos de dados remotos usando tecnologias OpenSearch que permitem que os usuários acessem e interajam com seus dados remotos de dentro do Windows Explorer.
Tecnologias de pesquisa relacionadas
Lista tecnologias relacionadas ao Windows Search: Enterprise Search, SharePoint Enterprise Search e aplicativos herdados, como Windows Desktop Search 2.x e Platform SDK: Indexing Service.
-
Define termos essenciais usados nas tecnologias Windows Search e Shell.
História do Windows Search
O Windows Search substitui o Windows Desktop Search (WDS), que estava disponível como um suplemento para o Windows XP e o Windows Server 2003. O WDS substituiu o Serviço de Indexação herdado de versões anteriores do Windows por aprimoramentos de desempenho, usabilidade e extensibilidade. A nova plataforma de desenvolvimento suporta 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, os 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 suporta um novo sistema de propriedades. Para obter informações sobre filtros, manipuladores de propriedades e manipuladores de protocolo, consulte Estendendo o índice.
O Windows Search está integrado no Windows Vista e versões posteriores e está disponível como uma atualização redistribuível para o WDS 2.x, para suportar os seguintes sistemas operativos:
- 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
- Para obter informações sobre como criar uma fonte de dados do Shell, consulte Implementing the Basic Folder Object Interfaces.
- Para obter mais informações sobre ISearchFolderItemFactory e a fonte de dados da pasta de DB, consulte a descrição da constante STR_PARSE_WITH_PROPERTIES em Bind Context String Keys. Consulte também Matrizes de Associação e IPropertySystem::GetPropertyDescriptionListFromString.
- Para obter informações sobre o OLE DB, consulte Visão geral da programação do OLE DB. Para obter informações sobre o provedor de dados do .NET Framework para OLE DB, consulte a documentação do System.Data.OleDb Namespace.
- Para obter uma visão geral dos manipuladores de tipo de arquivo (também conhecidos como manipuladores de extensão Shell e manipuladores de pesquisa), consulte Windows Search como uma plataforma de desenvolvimento.
- Para fóruns de discussão apoiados pela comunidade sobre tecnologias de busca, consulte Microsoft Q&A.
- Para obter exemplos de código relacionados, consulte Exemplos de código do Windows Search.
Tópicos relacionados