Procesamiento de elementos XML personalizados

Última modificación: martes, 22 de junio de 2010

Hace referencia a: SharePoint Server 2010

Se aplica a: Microsoft FAST Search Server 2010 for SharePoint
La característica de procesamiento de elementos XML personalizados permite asignar elementos basados en XML a propiedades administradas. Un escenario típico es el uso del contenido de ciertos elementos o atributos XML como metadatos para elementos rastreados. Por ejemplo, el uso de texto extraído de un elemento XML como el título de un elemento.

La canalización de procesamiento de elementos de FAST Search Server 2010 for SharePoint incluye una fase opcional de asignador XML para crear propiedades rastreadas de partes específicas de elementos XML rastreados. Para obtener más información sobre cómo habilitar la fase de asignador XML en la canalización de procesamiento de elementos, vea Configuración del procesamiento opcional de elementos.

En este artículo se describe cómo configurar la asignación de propiedades mediante el archivo de configuración xmlmapper.xml, como se indica a continuación:

Introducción al asignador XML

Use el asignador XML para el rastreo web y de recursos compartidos de documentos basados en XML que requieran extracción y transformación personalizadas. Al habilitar el asignador XML en la canalización, se asignan todos los elementos rastreados que sean documentos basados en XML. No use el asignador XML para rastrear contenido desconocido o varios orígenes, porque la configuración podría hacer coincidir involuntariamente elementos XML rastreados que no sean de interés.

Debe especificar las partes del contenido XML que se van a asignar mediante XPath 1.0 junto con la funcionalidad que proporciona el propio archivo de configuración. Por ejemplo, puede controlar varias expresiones, agregar separadores de cadenas, dividir cadenas y quitar espacios en blanco.

Para cada instrucción coincidente, debe especificar las propiedades rastreadas a las que se asigna el contenido XML extraído. Para obtener más información sobre propiedades rastreadas, vea el tema sobre la planeación del esquema de índice (FAST Search Server 2010 for SharePoint) y la referencia del esquema de índice.

Rastreo de contenido XML

Al habilitar el asignador XML en la canalización, se asignan todos los elementos rastreados que sean documentos basados en XML. Por lo tanto, debe asegurarse de rastrear solo contenido XML conocido. Si rastrea contenido desconocido o varios orígenes de datos, es posible que haga coincidir, involuntariamente, elementos XML rastreados que usan los elementos XML asignados para otros fines. Esto puede ocasionar que haya metadatos incorrectos en el índice.

Existen dos maneras principales para rastrear contenido XML en FAST Search Server 2010 for SharePoint.

  • Rastreo de documentos XML mediante el SSA de contenido (conector de FAST Search). Esto permitirá recuperar documentos XML de servidores web, recursos compartidos de archivos y bibliotecas de documentos de SharePoint.

    Nota

    Un elemento rastreado puede incluir varias partes, como un elemento de lista de SharePoint o un mensaje de correo electrónico con varios datos adjuntos. El asignador XML asignará contenido XML que aparece solo en la primera parte (principal) del elemento rastreado, no en los datos adjuntos.

  • Use la base de datos del conector de FAST Search para recuperar contenido XML de una columna de una tabla de base de datos (para obtener más información, vea el tema sobre el rastreo de contenido de base de datos con el conector de base de datos de FAST Search en Microsoft TechNet). En la regla de rastreo basada en SQL, puede especificar que una columna en particular de una tabla de base de datos se asigne a la propiedad interna definida previamente llamada data. Se trata de la misma propiedad interna que contiene el contenido principal de un documento cuando se pasa de un conector de indización a la canalización de procesamiento de elementos.

    En el ejemplo siguiente se muestra una regla de rastreo simple que recupera una descripción formal basada en XML de un producto de una tabla llamada Product para la propiedad interna llamada data.

    SELECT Product.formalDescription AS data FROM Product
    
    Nota importanteImportante

    La propiedad data no se puede asignar como una propiedad rastreada, pero en este caso será tratada como el contenido que representa un documento de tipo XML. Las consideraciones sobre tipos de contenido descritas en Detección de formato y análisis de elementos también se aplicarán a estos tipos de elementos.

Detección de formato y análisis de elementos

La canalización de procesamiento de elementos detecta el tipo de contenido mediante el análisis de los datos reales del elemento recuperado. Si contiene XML válido, será tratado como XML y convertido mediante el asignador XML. Una parte del contenido XML podría no tener declaraciones XML válidas y contener nombres de elementos que se usan frecuentemente en HTML. En esos casos, se podría confundir los elementos XML rastreados con elementos HTML. Una solución para este problema es omitir la detección de formato de los elementos rastreados cuya extensión de nombre de archivo sea ".xml". Para ello, agregue la siguiente regla de conversión al archivo de configuración user_converter_rules.xml.

<ConverterRules>
   <IFilter>
      <trust>
         <ext name=".xml" mimetype="text/xml" />
      </trust>
   </IFilter>
</ConverterRules>

Esta configuración asegura que los archivos con la extensión ".xml" se traten siempre como contenido XML. Para obtener más información, vea Configuración de FAST Search Server for SharePoint para usar un IFilter de terceros.

La canalización de procesamiento de elementos asignará el cuerpo principal de todos los elementos a la propiedad administrada llamada body, incluidos los elementos XML. Esto significa que se podrá buscar en el contenido de todos los elementos y atributos del índice de texto completo predeterminado y de la propiedad administrada llamada body. Esto se realiza además de la asignación opcional que se hizo mediante el asignador XML. Si una parte (o la totalidad) del XML son metadatos, es posible que desee controlar esta asignación en un nivel más individualizado. Debe asignar una parte del XML más específica (o incluso un valor ficticio) a la propiedad administrada llamada body. El siguiente procedimiento especifica cómo realizar esta asignación.

Para asignar contenido XML específico a la propiedad administrada body

  1. Especifique una configuración de asignador XML que asigne partes específicas del XML a una nueva propiedad rastreada con un nombre único.

  2. Especifique una asignación para esta propiedad rastreada en la propiedad administrada llamada body. Para obtener más información, vea el tema sobre la administración de propiedades rastreadas mediante Windows PowerShell (FAST Search Server 2010 for SharePoint) en Microsoft TechNet.

  3. Asegúrese de que la marca MergeCrawledProperties de body esté configurada en el esquema de índice. Para obtener más información, vea el tema sobre la administración de propiedades administradas mediante Windows PowerShell (FAST Search Server 2010 for SharePoint) en TechNet.

Personalización de xmlmapper.xml

Para modificar este archivo de configuración, debe ser miembro del grupo local FASTSearchAdministrators en el nodo de administración de FAST Search Server 2010 for SharePoint.

Para modificar xmlmapper.xml

  1. Asegúrese de que la fase del asignador XML esté habilitada en la canalización de procesamiento de elementos. Para obtener más información, vea Configuración del procesamiento opcional de elementos.

  2. En el nodo de administración, cree el siguiente archivo si es que no existe: %FASTSEARCH%\etc\config_data\DocumentProcessor\XMLMapper.xml.

  3. Edite %FASTSEARCH%\etc\config_data\DocumentProcessor\XMLMapper.xml en un editor de texto.

  4. Ejecute el comando psctrl reset para restablecer los procesadores de elementos que estén actualmente en ejecución en el sistema.

Formato de archivo de xmlmapper.xml

A continuación se muestra la estructura básica del archivo xmlmapper.xml.

<XMLPropertiesCreator>
  <propset>propertySetValue</propset> 
  <type>variantTypeValue</type> 
  <paragraph-sep>paragraphSeparatorValue</paragraph-sep>
  <XMLMappings>
    <Namespace name='namespaceName' uri='uriName' />
    <Mapping path='XPath' attr='propName' propset='GUID' type='varType'
             sep-str='separator' post-str='postString'
             ignore-whitespace='yes|no' strip-tags='yes|no'
             shallow='yes|no' mode='append|prepend|overwrite' />

    <SubTree base-path='basePath' >
      <Mapping path='XPath' attr='propName' propset='GUID' type='varType'
               sep-str='separator' post-str='postString'
               ignore-whitespace='yes|no' strip-tags='yes|no'
               shallow='yes|no' mode='append|prepend|overwrite' />
    </SubTree> 
    <MappingGroup base-path='basePath' attr='propName' propset='GUID' type='varType' 
                                    sep-str='separator' pre-str='preString' post-str='postString' 
                                    rec-sep-str='recSeparator' rec-pre-str='recPreString' rec-post-str='recPostString' 
                                    select='merge|first|longest' mode='append|prepend|overwrite' >
      <Mapping path='XPath' sep-str='separator' post-str='postString'
               ignore-whitespace='yes|no' strip-tags='yes|no' shallow='yes|no' /> 
    </MappingGroup>
  </XMLMappings>
</XMLPropertiesCreator>

Para obtener más información sobre la sintaxis XML de los elementos individuales, vea Esquema de asignador XML.

Ejemplo de configuración del asignador XML

Para este ejemplo, considere el siguiente elemento XML como la entrada de contenido.

<Document>
  <Title>My title</Title>
  <Date>2010-01-06T14:25:04Z</Date>
  <Size>128</Size>
  <Tags>
    <Tag>funny</Tag>
    <Tag>hilarious</Tag>
  </Tags>
  <Tutti>Hello</Tutti>
  <Frutti>World</Frutti>
</Document>

El siguiente ejemplo proporciona una configuración de asignador XML que extrae información del elemento.

<XMLPropertiesCreator>
  <propset>d6ee4933-09c4-46e3-a5e4-b3787cb4a090</propset>
  <type>31</type>
  <XMLMappings>
    <Mapping attr="mytitle" path="//Title"/>
    <Mapping attr="mysize" path="//Size" type="3"/>
    <Mapping attr="mydate" path="//Date" type="64" propset="38c35ad5-69ee-4776-886f-95961a73d52d"/>
    <Mapping attr="mytags" path="//Tag" sep-str=";"/>
    <MappingGroup attr="mymulti" base-path="/Document" select="first">
      <Mapping path="Tutti"/>
      <Mapping path="Frutti"/>
    </MappingGroup>
  </XMLMappings>
</XMLPropertiesCreator>

En este ejemplo, el asignador XML aplicará la asignación que se muestra en la tabla 1.

Tabla 1. Asignaciones del asignador XML

Elemento

Se asigna a

//Title

mytitle en el conjunto de propiedades "d6ee4933-09c4-46e3-a5e4-b3787cb4a090" con tipo de variante establecido en "31".

//Size

mysize en el conjunto de propiedades "d6ee4933-09c4-46e3-a5e4-b3787cb4a090" con tipo de variante establecido en "3".

//Date

mydate en el conjunto de propiedades "38c35ad5-69ee-4776-886f-95961a73d52d" con tipo de variante establecido en "64".

//Tag

mytags en el conjunto de propiedades "d6ee4933-09c4-46e3-a5e4-b3787cb4a090" con tipo de variante establecido en "31". Varias coincidencias de elementos se separarán por un punto y coma.

/Document/Tutti

mymulti en el conjunto de propiedades "d6ee4933-09c4-46e3-a5e4-b3787cb4a090" con tipo de variante establecido en "31". select="first" implica que solo se hace coincidir el primer elemento coincidente. En este caso, esto implica que se extrae el texto "Hello".

Vea también

Conceptos

Esquema de asignador XML

Configuración del procesamiento opcional de elementos