Documentation
(C) IBM Corp. 1996, 2000

DB2 Text Extender Administración y programación


Trabajar con documentos estructurados (soporte de secciones)

El soporte de secciones le permite indexar y buscar en secciones específicas de un documento estructurado, por ejemplo, en el título, en el autor o en la descripción. Los documentos pueden estar en formato XML o HTML o en documentos de archivos planos con códigos como HTML. El usuario define los códigos de marcación y sus nombres de sección correspondientes en un modelo de documento. El modelo de documento define las secciones de los documentos que se indexan y, por lo tanto, están disponibles para la búsqueda. Los nombres de las secciones son nombres descriptivos utilizados en las consultas en esa sección.

Para que el soporte de secciones esté disponible, debe especificar INDEXPROPERTY SECTIONS_ENABLED cuando habilite la columna de texto que contiene los documentos.

Un archivo de modelos de documentos lista todos los modelos de documentos definidos para la instancia del servidor. Cuando se crea una instancia del servidor, se crea automáticamente un archivo de modelos de documentos de ejemplo, DESMODEL.INI, en el subdirectorio de la instancia del servidor. El archivo está en la página de códigos ASCII .

La información de modelo de documento se copia en el directorio de índices. Si cambia el archivo de modelos de documentos para la instancia del servidor después de crear el índice, no afecta al soporte de secciones para el índice creado.

Por ejemplo, una búsqueda de McDaniel en la sección Autor en un índice con soporte de secciones puede ser parecida a la siguiente. La sección, en este caso Autor, siempre lleva el prefijo del nombre de modelo.

db2 "select count (*)
     from db2tx.htmltable
     where db2tx.contains(midescriptor,'MODEL mimodelohtml SECTION (autor) "Schmidt"') = 1

Secciones de atributos

Las secciones pueden ser de diferentes tipos. Las secciones de texto plano no tienen ningún tipo. Las secciones con un tipo declarado se conocen como secciones de atributos. Los tipos de atributo soportados son:

Puede utilizar rangos de valores para buscar en documentos que contienen secciones de atributos. La sección debe tener el tipo de sección adecuado. En el ejemplo siguiente, la sección ABC debe tener el tipo TIME para poder dar soporte a la consulta:

recuperar todos los documentos que contengan valores entre
20:00:00 y 22:00:00 en la sección ABC

Una sección puede tener más de un valor de atributo. Separe los valores con un blanco o una nueva línea. No puede anidar secciones de atributos.

Formatos de fecha soportados

Puede incluir fechas, por ejemplo, la fecha de creación o la fecha de publicación en la lista de secciones soportadas de un modelo de documento. Se da soporte a los formatos de fecha siguientes:

Tabla 3. Formatos de fechas soportados
Nombre de formato Formato Ejemplo
ISO AAAA-MM-DD
1986-12-25
100-12-25
10123-2-17

DD-MM-AAAA
01-10-1999
5-8-1990

Estándar de EE.UU de IBM (USA) MM/DD/AAAA
08/18/1999
5/13/1977

AAAA/MM/DD
1999/08/18

Estándar europeo de IBM (EUR) DD.MM.AAAA
20.10.1999
1.5.1980

La búsqueda en un índice con soporte de secciones de todos los documentos publicados en una fecha determinada puede parecerse a la siguiente:

dessrch -s SERVER -x TESTIX -section sample/PublishingDate -term 1999-09-09

Formatos de hora soportados

Se da soporte a los formatos de hora siguientes:

Tabla 4. Formatos de hora soportados
Nombre de formato Formato Ejemplo
ISO
hh:mm:ss
hh:mm
hh.mm.ss
hh.mm
hh
hhmm
hhmmss


19:00:23
19:00
19.00.23
19.00
19
1900
190013

Puede omitir los ceros iniciales para las horas. Los valores fuera de los rangos siguientes no son válidos:
Horas Minutos Segundos
0-23 0-59 0-59

Formatos flotantes soportados

Se da soporte a los siguientes formatos:

Utilice blancos o líneas nuevas para separar los valores flotantes.

Los siguientes ejemplos muestran formatos correctos e incorrectos de valores flotantes:
Formato correcto Formato incorrecto

1000
1
1.0e3
1.0E3
1E3
.1E4
0.1E4


1 000
1,000
e3

Formatos de enteros soportados

Se da soporte a los enteros en el rango de -2147483648 a 2147483647. Utilice blancos para separar los enteros. Esto significa que la serie "42 234" de una sección de tipo INTEGER se resuelve en los valores enteros "42" y "234" y no en "42234".

Los ejemplos siguientes muestran formatos correctos e incorrectos para valores de enteros:
Formato correcto Formato incorrecto
1000
1.000
1,000
1  000

1000000
100.000
100,00
100  000

Nota

No se da soporte a los separadores específicos de idiomas ni a los formatos monetarios.

Archivos planos y documentos HTML

Para archivos planos, las secciones se marcan utilizando códigos parecidos a HTML como, por ejemplo, <title> y <subject>. Un documento con secciones marcadas puede parecer lo siguiente:

<title> IBM Dictionary of Computing
<author> McDaniel, George
<subject> Computers, Reference, ....

Un archivo de modelos de documento para archivos planos o documentos HTML puede parecerse al siguiente. Los nombres de modelos y de secciones sólo pueden contener los caracteres A-Z, a-z y 0-9. Los nombres de modelos son siempre sensibles a las mayúsculas y minúsculas. Los nombres de sección pueden ser sensibles a las mayúsculas y minúsculas o no; se especifica el valor cuando se crea el modelo.

;lista de modelos de documentos
;el modelo siempre empieza por 'modelname' y el nombre del modelo
[MODELS]
modelname=ejemplo
modelname=ejemplo2
modelname=ejemplo3
 
; un 'ejemplo' de definición de modelo de documento
; izquierda  - identificador del nombre de sección
; derecha - código del nombre de sección
[ejemplo]
Title = title
Author = author
Subject = subject
Abstract = abstract
Content = content
PublishingDate=date
 
[ejemplo2]
Title = title
Author = author
Subject = subject
[ejemplo3]
Title = title
Author = author
Abstract = abstract
Docnum = docnum

Si un documento contiene una sección marcada que no está definida en el modelo de documento, el contenido de la sección se incluye en la sección definida con anterioridad para la indexación y la búsqueda. Por ejemplo, un documento contiene las secciones de marcación siguientes:

<title> IBM Dictionary of Computing
<subject> Computers, Reference, ....
<author> McDaniel, George
<abstract> Contiene la cobertura de información hasta el momento de
sistemas de proceso de información,
productos de comunicación y recursos, personal computers y sistemas de
oficina, así
como todo el rango de productos de hardware y software de IBM.

El modelo de documento, book, se define como:

[MODELS]
modelname=book
[book]
Title = title
Author = author
Abstract = abstract

La sección <subject> no se incluye en el modelo de documento book. Cuando se indexa el documento, el contenido de la sección del tema se indexa con el contenido de la sección de título. También están disponibles para la búsqueda dentro de la sección de título.

Si especifica una lista de modelos cuando crea el índice, el modelo por omisión es el primero de la lista. Puede cambiar el modelo por omisión utilizando el mandato desmodix.

Documentos XML

Para los índices con secciones habilitadas, los documentos XML deben estar estructurados correctamente y contener un elemento raíz. El nombre del elemento raíz debe ser igual a uno de los nombres de modelo definidos y las mayúsculas y minúsculas deben coincidir. La descripción del modelo en el archivo de modelos de documentos debe ser un subconjunto del modelo de documento definido en el archivo de DTD (definición de tipo de documento) para el documento.

La descripción del modelo debe empezar por el elemento raíz. Para cada elemento XML que desee utilizar como sección, debe incluir su jerarquía completa en la descripción del modelo. Si una sección es de tipo fecha, debe ser una hoja del árbol de modelos de documentos. No se da soporte a anidar las secciones de atributos.

La descripción de un modelo para documentos XML puede ser parecida a la siguiente:

; lista de modelos de documentos
[MODELS]
modelname = LETTER
; ejemplo de definición de modelo XML
; lado izquierdo  = identificador de nombre de sección que codifica toda la vía de acceso
; lado derecho    = códigos de nombre de sección que especifican el identificador
;                   para cada elemento de la vía de acceso del árbol hasta el
;                   nodo especificado. El delimitador de códigos es /.
[LETTER]
LETTER = LETTER
LETTER/date = LETTER/DATE
LETTER/address = LETTER/ADDRESS
LETTER/address/City = LETTER/ADDRESS/CITY
LETTER/Content = LETTER/CONTENT
LETTER/Content/Greetings = LETTER/CONTENT/GREETINGS

Un documento XML puede parecerse al siguiente. También muestra cómo se indexan las secciones que no están definidas en el modelo.

<?xml version="1.0"?>
<!DOCTYPE LETTER SYSTEM "letter.dtd">
 
<LETTER>
 <HEADER>Se ha saltado este código en la definición, para este texto
             se añadirá a la sección llamada LETTER
 </HEADER>
 <DATE>
           01.01.2000  03.02.2000
 </DATE>
 <ADDRESS>
           El texto se añadirá a la sección llamada LETTER/address.
   <CITY>
             El texto se añadirá a la sección llamada LETTER/address/City.
   </CITY>
 </ADDRESS>
 <CONTENT>
           El texto se añadirá a la sección llamada LETTER/Content.
 
   <NOSECTION>El texto se añadirá a la sección llamada LETTER/Content
              porque NOSECTION no está definida.
   </NOSECTION>
   <GREETINGS>
            El texto se añadirá a la sección llamada LETTER/Content/Greetings.
   </GREETINGS>
  </CONTENT>
</LETTER>
 


[ Principio de página | Página anterior | Página siguiente | Contenido | Índice ]