Compartir a través de


IndexableContent

Indica que el texto del elemento se debe indexar para la búsqueda, pero no está asociado a una propiedad . Tenga en cuenta que las propiedades se pueden recuperar más adelante en función de la clave de propiedad, pero el contenido de texto no puede.

<element
    sc:IndexableContent= "true" | "false" | "1" | "0"
    xmlns:sc="http://schemas.microsoft.com/Search/2013/ApplicationContent">
</element>

Tipo de datos

Este atributo acepta valores booleanos:

  • true
  • false
  • 1
  • 0

Ejemplos

En este ejemplo se muestra un archivo appcontent-ms simple que describe un elemento denominado "Sample 1".

Observe que el archivo contiene elementos no definidos por el esquema appcontent-ms: IndexerSampleInformation y IndexerSampleSpecificElement. El archivo appcontent-ms debe tener un nodo raíz que encapsula todos los datos que se indexen, pero puede dar nombre a ese nodo todo lo que quiera.

<?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>

Incluso puede decir a Windows Search que indexe el contenido de elementos arbitrarios. Solo tiene que usar el atributo IndexableContent para que Search indexe el contenido. En el ejemplo anterior, Windows Search indexará el contenido de IndexerSampleSpecificElement porque el atributo IndexableContent está establecido en 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>

La búsqueda tratará el contenido como contenido de texto de forma predeterminada; si el contenido es base64, use el atributo ContentType para especificar el tipo MIME.

En el ejemplo siguiente se muestra cómo copiar un archivo appcontent-ms en la carpeta LocalFolder\Indexed de la aplicación. El código copia los archivos que encuentre en la carpeta appcontent-ms de la aplicación en la carpeta LocalFolder\Indexed. (También puede crear nuevos archivos appcontent-ms directamente en la carpeta Indexed en lugar de copiarlos desde otra ubicación).

/// <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 obtener el código completo, vea el ejemplo de indexador.

Requisitos

Cliente mínimo compatible

Windows 8.1 [solo aplicaciones de escritorio]

Servidor mínimo compatible

Windows Server 2012 R2 [solo aplicaciones de escritorio]

Consulte también

Ejemplo de indexador

Windows. Storage. Búsqueda