Habilitando seu armazenamento de dados na Pesquisa Federada do Windows
Explica como permitir que seu armazenamento de dados seja acessado por um serviço Web OpenSearch e como evitar possíveis barreiras para fazer isso.
Este tópico é organizado da seguinte maneira:
- Condições para aceitação da solicitação de pesquisa
- Enviando consultas e retornando resultados de pesquisa no RSS ou Atom
- Mapeamento automático para propriedades do Shell do Windows
- Noções básicas sobre como Mapas do Windows itens para tipos de arquivo
- Evitando possíveis barreiras para habilitar um armazenamento de dados
- Recursos adicionais
- Tópicos relacionados
Condições para aceitação da solicitação de pesquisa
O serviço Web OpenSearch criado no servidor Web deve atender aos dois requisitos a seguir:
Seja capaz de aceitar uma
GET URL
consulta do cliente.Permitir que os termos de pesquisa sejam inseridos na URL.
O exemplo a seguir mostra como um termo de pesquisa pode ser inserido em uma URL.
https://example.com/search.aspx?query=terms¶m=mysearchword
Observação
A pesquisa federada não dá suporte ao envio POST
de solicitações para um serviço Web.
Para obter mais informações sobre como construir uma URL, confira "Parâmetros de modelo de URL" em Criando um arquivo de descrição do OpenSearch na Pesquisa Federada do Windows.
Sintaxe de consulta com suporte
Não há nenhuma sintaxe de consulta específica esperada no Windows 7. O provedor OpenSearch aceita quaisquer termos que o usuário insira na caixa de entrada no Windows Explorer e o codifica na URL. Ele faz isso de acordo com o modelo de URL descrito em "Parâmetros de modelo de URL" em Criando um arquivo de descrição do OpenSearch na Pesquisa Federada do Windows.
Os usuários esperam que termos separados sejam tratados como implicitamente ANDed juntos. Por exemplo, uma consulta para "Microsoft Windows" deve retornar apenas resultados que contenham "Windows" e "Microsoft".
Protocolos de autenticação com suporte
A Pesquisa Federada do Windows dá suporte à autenticação baseada no Windows e pode fornecer credenciais para serviços Web por meio dos seguintes protocolos:
- NTLM.
- Kerberos.
- Básico (somente por https).
- Outros SSPs (Provedores de Suporte de Segurança) instalados no Windows que fornecem capacidade de consulta adicional. Consulte a documentação do SDK da Interface SSP para manter-se a par da possível adição de outros SSPs.
Enviando consultas e retornando resultados de pesquisa no RSS ou Atom
O provedor OpenSearch é responsável por mapear os valores de elemento XML para propriedades do sistema do Windows Shell que podem ser usadas por aplicativos do Windows. Mas você não está limitado aos mapeamentos padrão de elementos RSS ou Atom padrão e pode incluir elementos XML personalizados no namespace do Windows para cada uma das propriedades. Por exemplo, você pode adicionar seus próprios elementos XML personalizados dentro do elemento item para fornecer metadados adicionais ao Windows. Você também pode mapear elementos de outros namespaces XML, como o iTunes
Exemplo de uma saída de RSS Feed
O exemplo de saída do RSS feed a seguir retorna um item.
<rss version="2.0" xmlns:media="https://search.yahoo.com/mrss/" xmlns:example="https://example.com/namespace">
<channel>
<title>Search Results</title>
<item>
<title>An example result</title>
<link>https://example.com/pictures.aspx?id=01</link>
<description>This is a test of the emergency search results system. If this were a real emergency result, you'd be reading something more useful.</description>
<pubDate>Wed, 1 Oct 2008 23:12:00 GMT</pubDate>
<media:content url="https://example.com/pictures/picture01.jpg" fileSize="212889" type="image/jpeg" height="768" width="1024"/>
<media:thumbnail url="https://example.com/thumbnails/picture01.jpg" height="120" width="160"/>
<example:dateTaken>Mon, 22 Sep 2008 23:12:00 GMT</example:dateTaken>
</item>
</channel>
</rss>
Para obter informações mais detalhadas sobre o mapeamento de propriedades, consulte as seções "Elementos Estendidos na Pesquisa Federada do WIndows" e "Mapeamentos de Propriedades Personalizadas" em Criando um arquivo de descrição OpenSearch na Pesquisa Federada do Windows.
Mapeamento automático para propriedades do Shell do Windows
Dentro dos itens no feed RSS, você pode optar por incluir outros elementos XML que são mapeados automaticamente para as propriedades do sistema do Windows Shell. Para fazer isso, inclua um elemento chamado após a propriedade do Shell do Windows e prefixado com o namespace do sistema do Windows Shell. O exemplo a seguir ilustra a declaração win=" http://schemas.microsoft.com/windows/2008/propertynamespace"
de namespace e a inclusão de um elemento para o mapeamento win:System.Contact.PrimaryEmailAddress
de propriedade :
<rss version="2.0" xmlns:example="https://example.com/schema/2009" xmlns:win="http://schemas.microsoft.com/windows/2008/propertynamespace">
...
<item>
<title>Someone</title>
<win:System.Contact.PrimaryEmailAddress>someone@example.com
</win:System.Contact.PrimaryEmailAddress>
</item>
O prefixo de namespace usado aqui ("win"
) é uma sugestão; você pode usar qualquer prefixo. No entanto, você deve usar os nomes exatos de propriedade do Windows Shell e deve incluir o URI (Uniform Resource Identifier) exato, conforme mostrado no exemplo a seguir:
http://schemas.microsoft.com/windows/2008/propertynamespace
Sobre as propriedades do sistema do Shell do Windows
O Windows define uma lista completa de Propriedades do Sistema e o formato de tipo de valor necessário para cada propriedade. A documentação da propriedade Shell de Janela System.FileExtension , por exemplo, especifica que o valor deve conter o ponto à esquerda (".docx" e não "docx").
Valores de data e hora
O formato de data e hora preferencial é ISO-8601, conforme mostrado no exemplo a seguir:
2008-01-16T 19:20:30:.45+01:00
Os desenvolvedores do .NET devem usar a classe DateTime com ToString("R")
para gerar o formato correto.
Para obter informações mais detalhadas sobre o mapeamento de propriedades, confira "Elementos estendidos na Pesquisa Federada do Windows" em Criando um arquivo de descrição openSearch na Pesquisa Federada do Windows.
Noções básicas sobre como Mapas do Windows itens para tipos de arquivo
A pesquisa na interface do usuário do Windows Explorer permite que os usuários tratem os resultados como arquivos quando um item RSS aponta para um arquivo armazenado remotamente. O usuário pode arrastar e soltar itens para a área de trabalho, e a interface do usuário do Windows Explorer exibe o ícone correto e fornece o menu de atalho apropriado. Se o item RSS não apontar para um arquivo armazenado remotamente, o arquivo será tratado como um link e os usuários poderão executar ações nele, como criar um atalho ou abri-lo no navegador.
O fluxograma a seguir mostra como o Windows determina o tipo de arquivo de um item.
O provedor OpenSearch executa as seguintes etapas para mapear um item para um tipo de arquivo:
- Identifique se o item deve ser tratado como um arquivo ou um link da Web.
- Identifique a extensão de nome de arquivo correta a ser usada.
Por exemplo, se o item tiver uma URL de link que usa um caminho do sistema de arquivos (como file:///\\server\share\etc\item.ext
), o provedor OpenSearch tratará o link como um arquivo e determinará o tipo pela extensão de nome de arquivo usada no caminho (.ext neste exemplo).
Se o item usar o compartimento RSS padrão ou o elemento MediaRSS media:content , o provedor OpenSearch pressupõe que o item é um arquivo e identifica a extensão de nome de arquivo da seguinte maneira:
- Se a propriedade System.FileExtension do Windows Shell tiver sido mapeada para o item, o provedor usará essa extensão de nome de arquivo.
- Se a propriedade System.FileExtension do Windows Shell não tiver sido mapeada, o provedor usará o atributo Type especificado no compartimento ou no elemento content. Esse elemento deve conter uma cadeia
MIMEType
de caracteres, como"image/jpeg"
. Se oMIMEType
estiver associado a uma extensão de nome de arquivo registrada no computador cliente, o item será considerado como um arquivo desse tipo. Se oMIMEType
não estiver associado a uma extensão de nome de arquivo registrada no computador cliente, o item será tratado como um tipo de link da Web. O provedor OpenSearch não tenta analisar o atributo url para localizar a extensão de nome de arquivo. - Se o
MIMEType
estiver associado a uma extensão de nome de arquivo registrada no computador cliente, o provedor determinará se a extensão de nome de arquivo é um tipo de arquivo web conhecido (.htm, .html, .asp, .aspx, .php, .swf, .stm). Nesse caso, o tipo de arquivo é considerado como um tipo de link da Web; caso contrário, ele é considerado como um tipo de arquivo. Por exemplo, se oMIMEType "text/html"
estiver associado à extensão de nome de arquivo .htm, esse item será considerado como um link da Web em vez de como um tipo de arquivo .htm.
Evitando possíveis barreiras para habilitar um armazenamento de dados
Alguns armazenamentos de dados não fornecem um serviço Web compatível com OpenSearch, mas ainda podem ser conectados à Pesquisa Federada do Windows. Esses armazenamentos de dados incluem:
Índices remotos com métodos de autenticação que não têm suporte na Pesquisa Federada do Windows 7.
Os exemplos incluem autenticação baseada em formulários e outros métodos de autenticação personalizados.
Se um repositório público de alto valor tiver APIs Web públicas, qualquer pessoa poderá escrever outro serviço Web compatível com OpenSearch e chamar essas APIs nos bastidores.
Exemplos incluem a Biblioteca do Congresso e bancos de dados de pesquisa médica.
Armazenamentos ou índices de dados corporativos proprietários e repositórios de gerenciamento de conteúdo herdados, para os quais pode ser impossível implementar um front-end.
No entanto, há alternativas que podem evitar barreiras para habilitar um armazenamento de dados. Estas são algumas dessas alternativas:
Para escrever um serviço Web intermediário quando você não puder modificar o serviço Web para a fonte de dados existente ou o serviço Web fornecer uma API personalizada:
- Escreva um serviço Web intermediário que possa aceitar uma consulta do Windows 7.
- Conecte-se à fonte de dados e recupere os resultados da consulta.
- Reformate os resultados no formato RSS ou Atom.
- Retornar os resultados para o cliente do Windows 7.
- Observe que, para serviços de dados corporativos e muitos serviços de dados da Internet, talvez seja necessário passar as credenciais do usuário em nome do serviço Web para executar o corte de resultados com base nas permissões do usuário.
Para usar um mecanismo de pesquisa existente quando não for possível habilitar um armazenamento de dados público:
Use um mecanismo de pesquisa público que já dê suporte ao OpenSearch com RSS. Você pode fazer isso fornecendo aos usuários um arquivo .osdx que tem um modelo de URL que restringe os resultados somente àqueles para seu domínio específico.
Consulte o exemplo a seguir de uma descrição do OpenSearch para pesquisar apenas o conteúdo da Ajuda para Windows usando uma consulta no live.com.
<?xml version="1.0" encoding="UTF-8"?> <OpenSearchDescription xmlns="https://a9.com/-/spec/opensearch/1.1/"> <ShortName>Windows Help</ShortName> <Description>Search Windows Help using the live.com search engine</Description> <Language></Language> <Url type="text/html" template="https://windowshelp.microsoft.com/windows/search.aspx?=&qu={searchTerms}"/> <Url type="application/rss+xml" template="https://api.search.live.com/rss.aspx?source=web&query={searchTerms} site:windowshelp.microsoft.com&web.count=50"/> </OpenSearchDescription>
Para usar um servidor de indexação existente que dá suporte ao OpenSearch quando você não pode habilitar armazenamentos de dados corporativos proprietários ou índices:
- Selecione um servidor de indexação existente que dê suporte ao OpenSearch para indexar seu conteúdo, como o Servidor de Pesquisa do SharePoint.
- Crie um arquivo .osdx que restrinja os resultados do índice do SharePoint somente aos do servidor usando a sintaxe KeyWord no modelo de URL.
Para gravar um armazenamento de dados do lado do cliente se uma solução somente do lado do servidor não funcionar:
- Escreva uma fonte de dados OpenSearch do lado do cliente que esteja entre o provedor Windows OpenSearch e a fonte de dados externa.
- Use a API de Interface IOpenSearchSource no SDK do Windows para criar um arquivo .searchconnector-ms configurado adequadamente por meio do qual o Windows Explorer pode chamar sua implementação com os parâmetros de consulta. Sua implementação pode retornar resultados formatados no formato RSS ou Atom. Isso permite que sua implementação forneça a interface do usuário de autenticação personalizada e se conecte à fonte de dados usando sua API proprietária.
Observação
Abrir um arquivo .osdx cria um arquivo .searchconnector-ms (conector de pesquisa) no diretório %userprofile%/searches e coloca um link para ele no diretório %userprofile%/links.
Recursos adicionais
Para obter informações adicionais sobre como implementar a federação de pesquisa em armazenamentos de dados remotos usando tecnologias OpenSearch no Windows 7 e posteriores, consulte "Recursos adicionais" em Pesquisa Federada no Windows.
Tópicos relacionados
-
Criando um arquivo de descrição do OpenSearch na Pesquisa Federada do Windows
-
Seguindo as práticas recomendadas na Pesquisa Federada do Windows
-
Implantando conectores de pesquisa na Pesquisa Federada do Windows