Partilhar via


Esquema de conteúdo do aplicativo

o conteúdo do aplicativo ou appcontent-ms, esquema para aplicativos Windows permite que os desenvolvedores aprimorem a pesquisa no aplicativo fornecendo informações extras sobre o conteúdo do aplicativo para o índice de pesquisa de Windows.

Como ele funciona

para solicitar que Windows indexe seus dados de aplicativo para pesquisas no aplicativo, crie uma pasta chamada "Indexed" no LocalFolder e armazene os arquivos que você deseja indexar lá. Windows indexa o conteúdo do arquivo e os metadados (propriedades) nessa pasta "indexada" e em todas as suas subpastas.

Para usar o esquema appcontent-MS para indexar informações sobre um arquivo ou item, crie um arquivo appcontent-MS e adicione-o à pasta LocalFolder\Indexed do seu aplicativo (você precisa fazer isso no tempo de execução, após o aplicativo ter sido instalado). quando seu aplicativo usa Windows. Armazenamento. Pesquisar APIs para executar consultas na pasta indexada, a pesquisa incluirá informações de seus arquivos appcontent-MS.

as informações em arquivos appcontent-ms só são usadas quando o aplicativo que as contém usa o Windows. Armazenamento. API de pesquisa para executar pesquisas; as informações não serão exibidas na interface do usuário do Windows ou em outros aplicativos, por exemplo.

Este exemplo mostra um arquivo appcontent-MS simples que descreve um item chamado "Sample 1".

Observe que o arquivo contém elementos não definidos pelo esquema appcontent-MS: IndexerSampleInformation e IndexerSampleSpecificElement . O arquivo appcontent-MS deve ter um nó raiz que encapsula todos os dados a serem indexados, mas você pode nomeá-lo como desejar.

<?xml version="1.0" encoding="utf-8"?>
<IndexerSampleInformation>
  <Properties xmlns="http://schemas.microsoft.com/Search/2013/ApplicationContent">
    <Name>Sample 1</Name>
    <Keywords>
      <Keyword xml:lang="en-US">Sample 1 - keyword 1</Keyword>
      <Keyword>Sample 1 - keyword 2</Keyword>
    </Keywords>
    <Comment>Sample 1 comment</Comment>
    <AdditionalProperties>
      <Property Key="System.Title">Sample 1 Title</Property>
      <Property xml:lang="en-US" Key="System.Contact.EmailAddresses">
        <Value>bryan@contoso.com</Value>
        <Value>vincent@contoso.com</Value>
      </Property>
    </AdditionalProperties>
  </Properties>
  <IndexerSampleSpecificElement sc:IndexableContent="true" 
    xmlns:sc="http://schemas.microsoft.com/Search/2013/ApplicationContent">
    The text included here will be indexed, enabling full-text search.
  </IndexerSampleSpecificElement>
</IndexerSampleInformation>

você pode até mesmo dizer Windows pesquisa para indexar o conteúdo de elementos arbitrários. Basta usar o atributo IndexableContent para informar à pesquisa para indexar o conteúdo. no exemplo anterior, Windows pesquisa indexará o conteúdo do IndexerSampleSpecificElement porque o atributo IndexableContent está definido como true:

  <IndexerSampleSpecificElement sc:IndexableContent="true" 
    xmlns:sc="http://schemas.microsoft.com/Search/2013/ApplicationContent">
    The text included here will be indexed, enabling full-text search.
  </IndexerSampleSpecificElement>

A pesquisa tratará o conteúdo como conteúdo de texto por padrão; Se o conteúdo for base64, use o atributo ContentType para especificar o tipo MIME.

O exemplo a seguir mostra como copiar um arquivo appcontent-MS para a pasta LocalFolder\Indexed do seu aplicativo. O código copia todos os arquivos encontrados na pasta appcontent-MS do aplicativo para a pasta LocalFolder\Indexed. (Você também pode criar novos arquivos appcontent-MS diretamente na pasta indexada em vez de copiá-los de outro local.)

/// <summary>
/// For the purposes of this sample, the appcontent-ms files are stored in an "appcontent-ms" folder in the
/// install directory. These are then copied into the app&#39;s "LocalState\Indexed" folder, which exposes them
/// to the indexer.
/// </summary>
public async static Task<string> AddAppContentFilesToIndexedFolder()
{
    var localFolder = Windows.Storage.ApplicationData.Current.LocalFolder;
    var installDirectory = Windows.ApplicationModel.Package.Current.InstalledLocation;
    var outputString = "Items added to the \"Indexed\" folder:";
    var appContentFolder = await installDirectory.GetFolderAsync("appcontent-ms");
    var indexedFolder = await localFolder.CreateFolderAsync(
        "Indexed", Windows.Storage.CreationCollisionOption.OpenIfExists);
    var files = await appContentFolder.GetFilesAsync();
    foreach (var file in files)
    {
        outputString += "\n" + file.DisplayName + file.FileType;
        await file.CopyAsync(indexedFolder, 
            file.Name, Windows.Storage.NameCollisionOption.ReplaceExisting);
    }
    return outputString;
}
// For the purposes of this sample, the appcontent-ms files are stored in an "appcontent-ms" folder
// in the install directory.  These are then copied into the app&#39;s "LocalState\Indexed" folder,
// which exposes them to the indexer.
function _addAppContentFilesToIndexedFolder() {
    var localFolder = appData.localFolder,
        appcontentFolder,
        indexedFolder,
        installDirectory = Windows.ApplicationModel.Package.current.installedLocation;
    var output = "Items added to the \"Indexed\" folder:\n";
    installDirectory.getFolderAsync("appcontent-ms").then(function (retrievedAppcontentFolder) {
        appcontentFolder = retrievedAppcontentFolder;
        return localFolder.createFolderAsync(
            "Indexed", Windows.Storage.CreationCollisionOption.openIfExists);
    }).then(function (retrievedIndexedFolder) {
        indexedFolder = retrievedIndexedFolder;
        return appcontentFolder.getFilesAsync(appcontentFolder);
    }).then(function (files) {
        var promiseArray = [];
        for (var i = 0, len = files.length; i < len; i++) {
            promiseArray[i] = files[i].copyAsync(indexedFolder, 
                files[i].name, Windows.Storage.NameCollisionOption.replaceExisting);
            output += files[i].displayName + files[i].fileType;
            if (i < len - 1) {
                output += "\n";
            }
        }
        return WinJS.Promise.join(promiseArray);
    }).done(function () {
        WinJS.log &amp;&amp; WinJS.log(output, "sample", "status");
    });
}

Para obter o código completo, consulte o exemplo do indexador.

Referência de elemento

A tabela a seguir lista todos os elementos neste esquema, classificados alfabeticamente por nome.

Elemento Descrição
AdditionalProperties

Contém propriedades adicionais que descrevem o item.

Comentário

Contém um System. Comment que descreve o item.

Palavra-chave

Uma das palavras-chave System. keyque descreve o item.

Palavras-chave

Contém as palavras-chave System. keyque descrevem o item.

Nome

Especifica o System . ItemName \System. ItemNameDisplay do item.

Propriedades

contém propriedades que descrevem o item para o índice de pesquisa de Windows.

Propriedade

Uma propriedade que descreve o item.

Valor

O valor que será indexado para a propriedade.

 

Atributos para elementos específicos do aplicativo

Use esses atributos para indexar conteúdo em seus próprios elementos XML específicos do aplicativo.

Atributo Descrição

ContentType

Definir essa propriedade em um elemento indica que o conteúdo do elemento é tratado como uma codificação base64 do tipo MIME/tipo de conteúdo especificado e é indexado usando o manipulador para esse tipo de conteúdo.

IndexableContent

Indica que o texto do elemento deve ser indexado para pesquisa, mas não está associado a uma propriedade. Observe que as propriedades podem ser recuperadas posteriormente com base na chave de propriedade, mas o conteúdo de texto não pode.

 

Exemplo de indexador

Windows. Armazenamento. Procurando

Adicionando pesquisa (HTML)

Adicionando pesquisa (XAML)