Estructura básica de la consulta
El elemento
<Contain> puede incluir cualquier número de los siguientes elementos, en cualquier orden:
Cada uno de estos elementos debe contener uno de los siguientes:
El elemento
<Contain> debe contener al menos un elemento <Required> o <Optional>.Atributos del elemento Contain
<Contain>.
Atributo MinCount
MinCount. Cada elemento es una forma de palabra o una cadena de formas de palabra devuelta por la subconsulta. El valor predeterminado del atributo es 1. El valor de este parámetro no debe ser mayor que el número total de elementos <Required> y <Optional> de la combinación de formas de palabra.
Este parámetro resulta útil cuando una combinación de formas de palabra contiene uno o varios elementos <Optional>.
La siguiente consulta busca el primer o el segundo parámetro:
Atributo KeepOrder
KeepOrder de tipo Boolean. El valor predeterminado del atributo es false.
La siguiente consulta especifica que el orden de los elementos es fijo:
KeepOrder también se aplica a cualquier elemento <Except>. Las palabras correspondientes a los elementos <Except> de una consulta no deben aparecer entre las palabras que esos elementos separan en la consulta. Sin embargo, pueden aparecer en cualquier otra posición fuera de las secuencias de consulta con orden fijo.
Por ejemplo, si modifica la consulta anterior colocando la forma de palabra “segunda” en un elemento <Except> en lugar de <Required>, un documento que contenga la combinación de formas de palabra “primera tercera segunda” coincidirá con la consulta (pero la forma de palabra “segunda” no se incluirá en el resultado). Si después elimina el atributo KeepOrder, un documento que contenga la combinación de formas de palabra “primera tercera segunda” no se incluirá en el resultado, porque la forma de palabra “segunda” no debe aparecer en ningún lugar del texto de un documento.
Atributos MinDistance y MaxDistance
MinDistance y MaxDistance especifican las distancias mínima y máxima entre palabras en una consulta. Estos atributos no tienen valores predeterminados. Si no se especifica alguno de estos dos atributos, no se aplica ninguna limitación de distancia.
La distancia entre palabras se mide en palabras y se calcula como la diferencia entre las posiciones de las dos palabras correspondientes. La distancia entre dos palabras contiguas es 1, por lo que el valor mínimo de cualquiera de estos atributos es 1. MaxDistance debe ser mayor o igual que MinDistance.
La distancia entre dos cadenas de palabras se calcula de la siguiente manera. Si las cadenas no se superponen, la distancia se calcula como la diferencia entre la posición de la palabra situada más a la izquierda de la cadena de la derecha y la posición de la palabra situada más a la derecha de la cadena de la izquierda. Si las cadenas se superponen, se considera que la distancia es 0.
Por ejemplo, en la frase “The quick brown fox jumped over the lazy dog,” la distancia entre las cadenas “quick fox” y “lazy dog” es 4, y la distancia entre las cadenas “quick fox” y “brown lazy dog” es 0.
Para los elementos <Except>, la distancia entre palabras se calcula de la siguiente manera:
- Si
KeepOrder="true", la palabra no debe aparecer dentro de la distancia especificada respecto a las palabras vecinas de la cadena (es decir, las palabras entre las que aparece en la consulta). Al mismo tiempo, la distancia entre los elementos vecinos del elemento<Except>debe estar dentro del rango especificado. - Si
KeepOrder="false", la palabra no debe aparecer dentro de la distancia especificada respecto a ninguna otra palabra de la cadena.
KeepOrder="true" y MaxDistance="2":
KeepOrder="false" y MaxDistance="2":
<Except> y la distancia máxima entre “tetraborato” y “sodio” es de dos palabras.
Elemento Form
<Form>. Este elemento puede contener los siguientes elementos:
<Attributes>— Elemento opcional que contiene una consulta para los atributos de una forma de palabra. Para obtener más información, consulte cuándo usar scripts de extracción.<Text>— Elemento opcional que contiene el texto Unicode de una forma de palabra. Si no se especifica ningún texto, cualquier palabra que coincida con la consulta de atributos coincidirá con la consulta. En este caso, la consulta de atributos es obligatoria.
<Form>.
Atributo SearchType
SearchType de la etiqueta <Form>. Este atributo puede tener los siguientes valores:
El atributo
SearchType es opcional y, de forma predeterminada, se establece en AllFormsSearch.
Atributo CaseSensitive
CaseSensitive de la etiqueta <Form>. Este atributo es opcional y, de manera predeterminada, se establece en false.
La siguiente consulta usa los atributos SearchType y CaseSensitive de la etiqueta <Form>:
Elemento Attributes
<Attributes>. Este elemento puede contener los siguientes elementos:
El elemento
<Not> se construye de la misma manera que el elemento <Attributes> y solo puede contener uno de estos elementos.
Los elementos <Or> y <And> deben contener al menos dos de estos elementos.
La etiqueta <Attribute> tiene un atributo SearchType opcional que especifica el tipo de búsqueda de atributos. Este atributo puede tener los siguientes valores:
ExactSearch— Busca el atributo exactamente en la forma especificada en la consulta.PrefixSearch— Busca atributos que comiencen con el texto especificado.
SearchType se establece en ExactSearch de forma predeterminada.
Suponga que tiene un documento en el que ya ha identificado:
- objetos NER, llamando a la función
ExtractNerObjects - formas de palabra de un diccionario de usuario llamado
dictionary, llamando a la funciónExtractWordsFromUserDictionary - todos los objetos que satisfacen una expresión regular pasada como parámetro, llamando a la función
ExtractRegularExpression
regExp.
El nombre de la colección se puede usar en consultas XML realizadas en el documento indexado. Se puede acceder a la propia colección resultante mediante su nombre.
date puede encontrar una fecha con el formato “31 de mayo de 2019”. Entonces, date1 corresponde a la palabra “mayo”, date2 corresponde a “31” y date3 corresponde a “2019”.
Elemento FormSet
<FormSet>.
Este tipo de consulta combina varias consultas de una sola forma mediante OR. Equivale a una consulta <Query> en la que todas las subconsultas son consultas opcionales de formas de palabra.
Sin embargo, en una consulta <FormSet>, puede especificar una consulta de atributos común a todas las formas. Esto permite realizar búsquedas más eficientes cuando se usa ExactSearch para encontrar todas las formas de palabra, existe una consulta de atributos para cada forma y todas esas consultas de atributos comparten algún fragmento común.
Un elemento <FormSet> contiene los siguientes elementos:
<Attributes>— Elemento opcional que contiene una consulta para los atributos de la forma. Esta consulta se combina con las consultas de atributos de la forma mediante AND.<Form>— Elemento obligatorio que contiene una consulta para una forma de palabra. Un elemento<FormSet>debe contener al menos un elemento<Form>.
Consulta de ejemplo para extraer direcciones en XML
El resultado de una consulta de extracción de direcciones es una cadena de texto que contiene la primera palabra del país, la primera palabra de la calle, la primera palabra de la ciudad, la primera palabra del estado y la primera palabra del código postal (en ese orden, siempre que no estén separadas entre sí por más de 5 palabras). Las palabras consecutivas que forman un componente (por ejemplo, el nombre de una calle) también se numeran en el índice, empezando por 1.xmlQueryResult:
