La característica Full-Text Search de IBM Rational ClearQuest, Versión 7.1: Parte 1. Generalidades de la búsqueda y casos de uso

ClearQuest Full-Text Search es una de las nuevas características de IBM® Rational® ClearQuest® Versión 7.1. Con esta herramienta, el usuario de ClearQuest Web puede buscar cualquier registro en ClearQuest de la misma manera en que realiza búsquedas en la Web. Este artículo ayuda a los administradores de ClearQuest a comprender las nuevas características y su instalación, configuración, y arquitectura subyacente.

George Aroush, Advisory Software Engineer, IBM

author photoGeorge Aroush forma parte del equipo de IBM Rational desde hace 5 años. Lideró y trabajó en numerosos proyectos dedicados a ClearQuest. Recientemente, dirigió y realizó la arquitectura y la implementación de la característica Full-Text Search para ClearQuest V7.1. Antes de trabajar para IBM, se dedicó durante 12 años a la recuperación de información, gestión de conocimientos y minería de datos. Estuvo a cargo del diseño y la implementación de numerosos motores de búsqueda y soluciones de alto rendimiento que aún hoy se utilizan. En su tiempo libre, contribuye activamente al trabajo con código abierto. Lidera el proyecto Apache Lucene.Net, el cual transfirió de Java a C#. George es Master en Ciencias de la Computación de la Universidad de Northeastern y BFA de la Universidad de Tufts.



03-09-2009 (Primera publicación 03-09-2009)

Introducción

Una de las nuevas características de IBM®Rational®ClearQuest®Versión 7.1 es la característica Full-Text Search. Con ella, el usuario de ClearQuest Web puede buscar cualquier registro en ClearQuest de la misma manera en que realiza búsquedas en la Web.

Este artículo describe esta nueva tecnología y el motor detrás de la misma. El autor presupone que usted está familiarizado con ClearQuest y que ha leído la documentación existente sobre la característica Full-Text Search de ClearQuest V7.1 en el IBM Rational ClearQuestV7.1 Information Center. Este artículo trata sobre la herramienta ClearQuest Full-Text Search a partir de la versión V7.1.0.


Breves generalidades sobre la característica Full-Text Search

En esta sección, usted aprenderá acerca de las funciones básicas de la característica Full-Text Search. Además, esta sección brinda una rápida descripción general de los motores de búsqueda. Brinda detalles de alto nivel sobre qué es lo que compone un motor de búsqueda y cómo funciona.

Búsqueda en texto completo en dos palabras

A un alto nivel, para que funcione cualquier solución de búsqueda en texto completo, se requieren dos componentes clave: un componente indizador y un componente buscador. La concordancia entre ambos estará dada por los archivos de índice de búsqueda en texto completo, que son utilizados por los componentes de indización y búsqueda.

Un tercer componente, menos conocido, es el componente analizador. El analizador toma un flujo de texto crudo y lo descompone en tokens (palabras) que el indizador utiliza para agregarlos al índice de búsqueda en texto completo. El buscador también depende del analizador para dividir la cadena de búsqueda de un usuario en tokens para realizar la búsqueda.

Un cuatro componente, todavía menos común, es el componente de administración, que se utiliza para administrar la oferta de búsqueda en texto complete. Algunos motores de búsqueda lo ofrecen, aunque no todos.

Componente indizador

El componente indizador de una solución de búsqueda en texto completo agrega nuevos registros al archivo de indización del motor de búsquedas, de manera que el componente debe tener acceso de escritura. También se conoce a este componente comoRedactor. Con el fin de evitar la corrupción de datos, las mejores prácticas dictan que sólo debe haber un redactor que agregue registros a un índice. Sin embargo, existen técnicas para habilitar múltiples redactores si fuera necesario (para obtener un alto rendimiento). Si existen múltiples redactores, los mismos deben estar sincronizados. Si bien Solr soporta este tipo de configuración, la misma se encuentra fuera del alcance de ClearQuest.

Componente buscador

Después de que un indizador crea un índice, se puede realizar una búsqueda en este índice. El elemento buscador, también conocido comolector, es el que se utiliza para buscar en el índice. Pueden existir múltiples lectores en un índice en un momento dado. Además, estos lectores pueden continuar leyendo el índice mientras un redactor agrega nuevos registros al mismo. Estos registros agregados no serán visibles a otros lectores hasta que los lectores reabran el índice. Por ultimo, un lector puede buscar uno o más índices al mismo tiempo. Esto permite la escalabilidad mediante la distribución del índice en múltiples unidades lectoras, sistemas de archivos o servidores. (Consulte la documentación de Solr online para ver más detalles.)

Componente analizador

Unanalizadores un componente menos conocido del motor de búsqueda que resulta importante. El analizador es utilizado por el lector y el redactor. Un analizador toma un flujo de texto crudo y lo descompone en palabras. Este proceso depende del nivel de afinación que tiene el analizador para este idioma. Por ejemplo, un analizador en ingles no sólo descompondrá un flujo de texto en palabras, sino que también podrá aplicar reglas para reducir las palabras a su raíz. De este modo, se mejora considerablemente la calidad de la búsqueda. Por ejemplo, la búsqueda de la palabra “spell” dará como resultado palabras como "spelling", "spelled", "spellers", "spelled", "spells", etc.

Componente administrador

La mayoría de los motores de búsqueda tienen un componente deadministración. El trabajo fundamental del componente de administración es brindar los medios para configurar los componentes de indización y búsqueda. Además, el componente de administración generalmente brinda capacidades tales como afinación y monitoreo de la búsqueda y la indización.


Lucene en dos palabras

Lucene es una biblioteca gratuita de recuperación de información de código abierto, que originalmente fue implementada en Java™por Doug Cutting y presentada en SourceForge.net en marzo de 2000 en la Versión 0.01. Poco después, fue incubada en Apache Software Foundation y se lanzó la Versión 1.2 con la Licencia de Apache Software. Con los años, Lucene ha generado una respetable comunidad de seguidores, y ha sido trasladada a numerosos lenguajes de programación:

  • Delphi
  • Perl
  • C#
  • C++
  • Python
  • Ruby
  • PHP

En algunos casos, el puerto es una API completa con su puerto de clase (como por ejemplo para C#), mientras que en otros, es sólo una recopilación de bytes o un puerto solamente del lector, de manera que el lenguaje pueda brindar acceso de lectura al índice de Lucene.

Si bien es adecuada para cualquier aplicación que requiera capacidad de indización y búsqueda en texto completo, Lucene ha sido ampliamente reconocida por su utilidad en la implementación de motores de búsqueda en Internet y de búsquedas locales para un solo sitio. Lucene es en sí mismo un indizador y una biblioteca de búsqueda. No contiene un robot de búsqueda ni funcionalidad de análisis de HTML, ni ningún otro código para extraer texto crudo de formatos de documentos estándar como por ejemplo los documentos de Microsoft®Word o los archivos de Adobe®PDF.

En el centro de la arquitectura lógica de se encuentra la noción de un documento que contiene campos de texto. Esta flexibilidad permite que la API de Lucene sea genérica y, por lo tanto, neutral para cualquier formato de archivo o datos. Se puede indizar texto de un archivo PDF, HTML o Microsoft Word, una fuente de base de datos y muchos otros documentos si se puede extraer la información textual que contienen.

Documentos Lucene

Para indizar datos en Lucene, se debe crear un documento en Lucene. Un documento Lucene contiene un conjunto de campos Lucene. Cada uno de los campos posee un nombre y un valor textual. El campo se puede almacenar con el documento, en cuyo caso es devuelto con los resultados de búsqueda en el documento. Por ello, cada documento deberá en general contener uno o más campos almacenados que lo identifiquen de manera única.

Desde la perspectiva de ClearQuest, un registro ClearQuest se traduce a un documento Lucene. Los campos del registro ClearQuest se mapean a campos de un documento Lucene. Sin embargo, a diferencia de los registros ClearQuest, en Lucene no hay un tipo de registro específico, como tipo de documento. Además, en Lucene, un documento puede contener uno o más conjuntos de campos; es decir que un documento Lucene no es un mapeo directo a un tipo de registro de ClearQuest.

Campos de Lucene

Un campo de Lucene es una sección de un documento Lucene. Cada uno de los campos posee dos partes: nombre y valor.

La cantidad de campos de un documento Lucene no tiene límites, y Lucene no requiere que cada documento posea el mismo conjunto de campos. Un documento puede tener un campo que no existe en otro. Además, Lucene distingue entre mayúsculas y minúsculas en relación a los nombres de los campos pero no está predeterminada para distinguir entre mayúsculas y minúsculas en el texto en el cual realiza sus búsquedas.

  • Los valores pueden ser texto libre, que se puede procesar para su indización (mediante análisis y tokenización) o se puede almacenar como es sin ningún tipo de procesamiento. Si se almacenan como son, se los trata como palabras clave atómicas. Estas palabras clave pueden ser utilizadas para representar fechas, URLs, ID únicas, etc.
  • Los campos se almacenan de manera opcional en los índices para que puedan ser devueltos con los resultados del documento.

No existe límite para la cantidad de campos que hay en un documento Lucene, y Lucene requiere que cada uno de los documentos tenga el mismo conjunto de campos. Un documento puede tener un campo que no exista en otro. Además, Lucene distingue entre mayúsculas y minúsculas en relación con los nombres de los campos, pero no está predeterminada distinguir entre mayúsculas y minúsculas en el texto en el cual realiza las búsquedas.

Desde la perspectiva de ClearQuest, cada campo de ClearQuest (de cualquier tipo de registro) puede mapearse a un campo de Lucene. El campo de ClearQuest DBID quedará almacenado en el índice de Lucene (para un documento Lucene), y se considera como una palabra clave atómica. Es a través de este campo que los resultados de Lucene se vuelven a mapear a los registros de la base de datos de ClearQuest.

Índice de Lucene

En el centro de Lucene hay un índice. Cada vez que se crea e indiza un nuevo documento Lucene, se lo agrega al índice de Lucene. El índice de Lucene es un formato de archivo de propiedad exclusiva, pero abierto y documentado. El archivo del índice consta de cualquier número de archivos: desde tres a tantos como 100 (cuando el índice no está optimizado).

Analizador de Lucene

El valor de un campo en un documento Lucene debe ser analizado para poder ser indizado. Lucene incluye el concepto de analizador conectable. Esto constituye una parte importante de Lucene porque, con esta arquitectura, Lucene puede utilizar distintos analizadores para la indización y la búsqueda. Un analizador examina el contenido del texto en crudo y proporciona tokens que serán utilizados por el indizador. El flujo de texto en crudo puede ser tokenizado de diversas maneras. Un analizador trivial puede tokenizar flujos en espacios vacíos; un analizador de otro tipo puede realizar un filtrado de tokens, en base a las necesidades de la aplicación; otros analizadores utilizan la reducción de palabras a su raíz.

Debido a que los analizadores son conectables, se pueden utilizar distintos analizadores para distintos idiomas. Es a través del analizador (y el soporte Unicode de Java) que Lucene ofrece soporte listo para usar para distintos idiomas como por ejemplo: brasilero, chino simplificado, CJK, checo, holandés, francés, alemán, griego, ruso y tailandés. Para otros idiomas que no tengan soporte directo de Lucene, usted puede programar un analizador o ver si alguien ya lo ha hecho. Existen, además, analizadores comerciales para Lucene utilizables en una variedad de idiomas y afinaciones.


Solr en dos palabras

Solr fue desarrollado originalmente por CNET Networks. Fue donado a la Apache Software Foundation en enero de 2006, y desde ese momento ha continuado su crecimiento en términos de nuevos desarrollos y de base de usuarios. La versión actual de Solr es la 1.2, que fue lanzada al mercado en junio de 2007 y es utilizada por ClearQuest V7.1.0.

Solr es un servidor de búsquedas empresariales de código abierto que se basa en la biblioteca de búsqueda Lucene. Incluye las siguientes funciones (si bien no todas ellas se encuentran implementadas en ClearQuest 7.1):

  • APIs para XML, HTTP, y JSON (JavaScript Object Notation)
  • Resultados resaltados
  • Búsqueda por características
  • Copias caché
  • Replicación

Interfaz de administración Web

Solr se ejecuta en un contenedor de servlets Java, como por ejemplo IBM®WebSphere®, Tomcat, etc. Solr posee las siguientes ventajas:

  • Capacidades avanzadas de búsqueda en texto completo
  • Interfaz abierta basada en estándares para XML y HTTP
  • Escalabilidad
  • Replicación eficiente a otros servidores de búsqueda Solr
  • Flexibilidad y adaptabilidad con configuraciones XML
  • Extensibilidad mediante una arquitectura de complementos

En efecto, Solr utiliza la biblioteca de búsqueda Lucene y la amplía.

Esquema de Solr

Solr utiliza un esquema para definir documentos y campos de Lucene. Al hacerlo, Solr habilita campos dinámicos (nuevos campos que pueden agregarse sin requerir el reindización de los datos), proporciona un analizador configurable de Lucene, combina dos o más campos en uno, permite la eliminación de tipos o campos, y brinda una configuración base de archivos externos para palabras vacías, sinónimos, y una lista de palabras protegidas. Además, proporciona configuración de idiomas a través de su analizador conectable.

Consultas a Solr

El motor de consultas de Solr es una interfaz HTTP con formatos de respuesta configurables (XML, XSLT, JSON, Python y Ruby). El motor brinda clasificación de resultados en uno o más campos, capacidad resaltado, búsquedas facetadas, configuración de puntajes, y optimización de rendimiento.

Replicación de Solr

La replicación de Solr proporciona una eficiente distribución de las partes de los índices que han cambiado debido al transporte en rsync (esto no se encuentra implementado en ClearQuest 7.1). Usted puede agregar buscadores fácilmente utilizando la estrategia Pull suministrada. Esta capacidad resulta altamente deseable cuando usted utiliza en un entorno de búsqueda de alto rendimiento, en el cual se realizan cientos de búsquedas en un minuto y se deben brindar respuestas en fracciones de segundo.

Interfaz Solr Admin

Solr cuenta con una interfaz administrativa basada en tecnología Web que proporciona estadísticas sobre utilización del caché, actualizaciones y consultas. La interfaz brinda también análisis de textos, depuración de programas y registros, y posee una interfaz de consultas a las búsquedas de Lucene.


Generalidades sobre la característica Full-Text Search de ClearQuest

ClearQuest ya cuenta con capacidades de búsqueda: Find Record (buscar registro) y SQL Query (consulta SQL). Estas capacidades de búsqueda difieren de de la característica Full-Text Search en lo referente al público al que está destinada, la meta y el resultado.

La característica ClearQuest Find Record se limita a la búsqueda de registros de ClearQuest por el nombre de visualización o la ID de la base de datos. Full-Text Search no intenta reemplazar a Find Record, sino complementarlo. Si una base de datos de ClearQuest tiene un registro con un nombre de visualización tal comoSAMPL00000041, usted podrá utilizar igualmente Full-Text Search para buscar este registro. Sin embargo, es posible que obtenga más de un registro como resultado, y que el registroSAMPL00000041no aparezca en primer lugar. Esto se debe a que el texto deSAMPL00000041probablemente exista también en otro registro.

Full-Text Search en comparación con la característica Query

La característica ClearQuest Query se limita a la búsqueda de registros ClearQuest en base a un enunciado select de SQL. El proceso de búsqueda de registros puede a veces resultar complejo y largo, y requiere muchos pasos para elaborar un enunciado SQL. Más aún, los registros que se devuelven no están clasificados por importancia y, según la consulta, la ejecución de la consulta por parte de la base de datos puede demandar un tiempo considerable.

Full-Text Search en comparación con SQL

La sintaxis de Full-Text Search es diferente de la de una consulta en SQL, lo cual es importante recordar para poder comprender y utilizar la nueva característica de búsqueda de ClearQuest V7.1.

El enunciadoselectde SQL (o incluso el conjunto de la sintaxis de búsqueda en texto completo de un proveedor de bases de datos y el resultado) es diferente de la característica Full-Text Search. Debido a que la característica Full-Text Search envía pedidos de búsqueda a Solr y, a su vez, Solr los envía a Lucene, le brinda acceso al poder y la capacidad de la sintaxis de búsqueda de Lucene.

Si usted desea buscar sólo términos o frases, puede utilizar la característica Full-Text Search del mismo modo en que utiliza un buscador de Internet para realizar una búsqueda en la Web, o puede aprovechar las capacidades adicionales de búsqueda para definir de mejor manera el término de su búsqueda. Para utilizar la característica Full-Text Search, usted deberá tener un conocimiento básico de su esquema ClearQuest y de la sintaxis de búsqueda de Lucene.


Sintaxis de búsqueda de Lucene

Lucene tiene una rica sintaxis que es simple y, al mismo tiempo, ponderosa. Utiliza una sintaxis de búsqueda basada en tecnología Web normal en la industria, por lo cual si usted está familiarizado con las búsquedas en la Web, Lucene también le resultará familiar, ya que la característica Full-Text Search utiliza las mismas sintaxis de búsqueda.

No distingue entre mayúsculas y minúsculas

Lucene no distingue entre mayúsculas y minúsculas en cuanto a los términos o frases de las búsquedas. Es decir que las búsquedas de las palabrasclearquest,ClearQuest,CLEARQUESTetc., serán iguales. Sin embargo, si usted lo prefiere, puede hacer que Lucene realice esta distinción (consulte Solr's schema.xml – que se trata en este artículo – sobre cómo hacerlo. No obstante, hacerlo no sólo reducirá la calidad de la búsqueda, sino que aumentará el tamaño del índice de Lucene. Por ende, se desaconseja por completo esta práctica). De todos modos, como podrá ver más adelante, Lucene distingue entre mayúsculas y minúsculas cuando se utilizan palabras clave y con los nombres de campos. En el contexto de ClearQuest Full-Text Search, el término nombres de campos se refiere a los nombres de campo en la unidad de visualización de ClearQuest.

Términos

En Lucene, las consultas se descomponen en términos y operadores. Existen dos tipos de términos: términos únicos y frases.

Un término único es una sola palabra, como por ejemplospell o login. Una frase es un grupo de palabras entre comillas, como por ejemplo "spell error". Se pueden combinar múltiples términos con operadores booleanos para formar una consulta más compleja a Lucene (éstas se describen en las siguientes secciones).

Para buscar un conjunto de palabras, usted deberá ingresarlas en el campo de búsqueda de texto de ClearQuest Web. Para buscar una frase, coloque el conjunto de palabras entre comillas. La búsqueda de un término se ve de la siguiente manera spell o clearquest clearcase. Si usted está realizando una búsqueda tanto en ClearQuest como en IBM® Rational® ClearCase®, la búsqueda de una frase se verá de la siguiente manera: clearquest clearcase

Nota:

Cuando usted busca una frase, como por ejemplo "clearcase clearquest" o "clearquest clearcase," el orden de las palabras indica diferentes búsquedas. Usted obtendrá resultados sólo cuando las palabras existan en el orden que usted le haya dado a la frase de la búsqueda.

Palabras vacías

Lucene puede configurarse para tratar a ciertas palabras como palabras vacías. Esta es una práctica común para eliminar el ruido de fondo de la búsqueda, mejorando así la calidad de los resultados. Por ejemplo, los términos tales como "a", "an", "is", it", "the", etc, se consideran palabras vacías. En el momento de la indización, son eliminados del índice de Lucene. Usted puede configurar el conjunto de palabras vacías en función de sus necesidades, editando el archivo Solr schema.xml.

Lo importante de las palabras vacías es reconocer que si "a" está configurado como una palabra vacía, lo cual sucede en la configuración predeterminada para el idioma inglés de la característica ClearQuest Full-Text Search, entonces la búsqueda de "a" no devolverá ningún resultado. Además, si un documento contiene el texto "ClearQuest is an award winning application (ClearQuest es una aplicación premiada)" la frase de búsqueda para "clearquest is an award wining application" o "clearquest award wining application" (observe cómo se eliminan las palabras "is an" en el segundo ejemplo) tendrán los mismos resultados. Esto se debe a que "is" y "an" figuran como palabras vacías, que se eliminan en el momento de la indización.

Campos

Como se mencionara anteriormente, Lucene soporta los datos de los campos. Cuando usted realiza una búsqueda, puede especificar un campo de visualización en ClearQuest para buscar dentro del mismo o utilizar el predeterminado (cuando no se especifica ningún campo). Cuando use el predeterminado, la búsqueda se realizará en todos los campos. Para buscar dentro de un campo específico, use un separador de dos puntos (:) ente el nombre del campo y el término de la búsqueda. Por ejemplo, si usted desea buscar la palabra spelling solamente dentro del campo Headline (Título) de un registro cualquiera, deberá utilizar la sintaxis Headline:spelling. Para buscar una frase dentro de un campo, use la sintaxis Headline:"spelling error"(entre comillas).

Nota:

Las búsquedas restringidas a un campo, como por ejemplo Headline:spellingerror(sin comillas) darán como resultado una búsqueda del término spelling dentro del campo Headline, y el resultado de esta búsqueda se combinará con el resultado de una búsqueda AND de errores en todos los campos (en cambio, con V7.1 y 7.1.0.1, OR era el término predeterminado). Por lo tanto, si usted desea acotar la búsqueda para que los términos spelling y error se encuentren dentro del campo Headline, deberá aplicar la siguiente sintaxis: Headline:spelling Headline:error

Como se mencionara anteriormente, Lucene distingue entre mayúsculas y minúsculas para los nombres de los campos. Por ejemplo, headline:spelling no es lo mismo que Headline:spelling (aquí se pone énfasis en la mayúscula utilizada en el nombre del campo: headline o Headline).

Modificadores de términos

Lucene soporta términos de consulta modificadores para brindar una amplia variedad de opciones de búsqueda. Cuando usted elige estas opciones, podrá ampliar o reducir la sintaxis de su búsqueda con el fin de obtener un mejor resultado.

Búsquedas con comodín

Lucene soporta búsquedas con comodín de caracteres únicos y múltiples. Use un signo de pregunta (?) para la búsqueda con comodín de carácter único y un asterisco (*) para caracteres múltiples.

La búsqueda con comodín de carácter único busca términos que correspondan al carácter único reemplazado. Por ejemplo, para buscar las palabras text o test usted puede aplicar esta búsqueda:
te?t

Las búsquedas con comodín de caracteres múltiples buscan 0 o más caracteres. Por ejemplo, para buscar los términos test, tests, o tester, usted puede emplear esta búsqueda:
test*

Además, puede utilizar búsquedas con comodín en el medio de un término.

Nota

No es posible utilizar ninguno de estos caracteres comodín al inicio de un término de búsqueda.


Lucene soporta búsquedas imprecisas en base a la Distancia de Levenshtein (denominada también algoritmo de la Distancia de Edición). Para realizar una búsqueda imprecisa, use el símbolo virgulilla (~) al final de un término de una sola palabra. Por ejemplo, para buscar un término que se escribe de manera similar a word, use word~. Este término de búsqueda encontrará una correspondencia conwood, work, dword, wordy, ford, worf, warning, etc., además de word.

Lucene soporta la búsqueda de palabras que se encuentran dentro de una determinada distancia. Para realizar una búsqueda por proximidad, use el símbolo virgulilla al finalizar la frase. Por ejemplo, para buscar clearquest y clearcase a una distancia de menos de 10 palabras entre sí, use la siguiente búsqueda:"clearquest clearcase" ~10

Con las búsquedas en rangos, usted puede encontrar correspondencias entre registros y valores de campo que se encuentran entre los límites superior e inferior especificados e el rango de la búsqueda. Las búsquedas en rangos pueden incluir o excluir los límites superior o inferior. Las búsquedas en rango inclusivas se marcan con corchetes: []. Las búsquedas en rango exclusivas se marcan con llaves: {}.

El término de búsqueda SubmitDate:[2007 TO 2008] encontrará registros en donde los campos SubmitDate tienen valores entre 2007 y 2008, inclusive. Usted podrá acotarla a un mes específico para, por ejemplo, buscar registros que se hayan enviado en el mes de octubre de 2008:
SubmitDate:[20081001 TO 20081031]

Observe que las búsquedas en rango no están limitadas a los campos de fecha. También puede realizar búsquedas en rango sin campos de fecha. Por ejemplo, una búsqueda paraFruitName:{apple TO blueberry} produciría registros en los cualesFruitName = banana.

Intensificación de términos

Lucene brinda el nivel de relevancia de los registros con correspondencia en base a los términos encontrados. Para realizar la intensificación de un término use el símbolo acento circunflejo (^) con un factor de intensificación (número) al final del término que está buscando. Cuanto más alto el factor de intensificación, más relevancia tendrá el término.

la intensificación le permite controlar la relevancia de un registro intensificando su término. Por ejemplo, si usted está buscando clearquest clearcase, y desea que el término clearquest tenga más relevancia en la clasificación de los conjuntos de resultados, lo podrá intensificar utilizando el símbolo acento circunflejo (^) junto con el factor de intensificación a continuación del término. Usted deberá escribir:
clearquest^4 clearcase

Esto hará que los registros generados con el término clearquest tengan más relevancia que los que tienen el término clearcase. Usted también puede intensificar términos de frases, como se muestra en el siguiente ejemplo:"clearquest 7.1"^4 "clearcase7.1"

El factor de intensificación predeterminado es 1 (uno). Si bien el factor de intensificación debe ser positive, puede ser inferior a 1 (por ejemplo: 0,2) para reducir la relevancia de los registros que contengan el término o la frase.


Operadores booleanos

Los operadores booleanos permiten que los términos se combinen mediante operadores lógicos. Lucene soporta AND, mas (+), OR, NOT, y menos (-) como operadores booleanos. Los operadores booleanos deben escribirse en MAYÚSCULAS.

OR

El operador OR vincula dos términos o frases y encuentra un registro correspondiente si en el texto existe cualquiera de los términos o frases. Esto equivale a una unión que utiliza conjuntos. Usted puede utilizar el símbolo doble barra (||) en lugar de la palabra OR.

Para buscar documentos que contengan clearquest, clearcase o sólo clearquest, aplique esta consulta:
clearquest OR clearcase

Usted puede combinar múltiples búsquedas con OR, como se muestra en este ejemplo:
clearquest OR clearcase OR 7.1
o
clearquest || clearcase || 7.1
Ambas tienen el mismo significado.

AND

El operador AND corresponde a documentos en los cuales figuran ambos términos en cualquier lugar del texto de un registro único. Esto equivale a una intersección que utiliza conjuntos. Se pueden usar dos símbolos (&&) en lugar de la palabra AND. Con ClearQuest 7.1.0.2, el operador AND es el operador de conjunción predeterminado. Esto significa que si no hay operador booleano entre dos términos o frases, se utilizará el operador AND.

Para buscar registros que contengan clearquest y clearcase,usted puede emplear cualquiera de estas consultas:
clearquest clearcase o clearquest AND clearcase o clearquest && clearcase
Los tres ejemplos tienen el mismo significado.

Edición del archivo del esquema XML de Solr

Con ClearQuest 7.1.0.2, el operador booleano predeterminado es AND. Usted puede fijar OR como predeterminado cambiando la configuración de schema.xml en el archivo de configuración de Solr. Busque <solrQueryParser defaultOperator="AND"/> y cambie AND por OR. Tenga cuidado si realiza este cambio, porque se obtendrán más resultados cuando se utilizan múltiples términos o frases.

+ (plus)

El operador (+) (también conocido como el operador requerido) exige que el término que aparece después del símbolo mas exista en algún lugar del campo de un registro único. Para buscar registros que contengan clearquest y 7.1 ero que también contengan clearcase, use esta consulta:
+clearquest +7.1 OR clearcase

la sintaxis será diferente si usted agrega AND:
clearquest AND 7.1 OR clearcase

Esto sucede porque cuando usted usa el operador booleano AND u OR, la búsqueda se verá afectada por el orden de aparición de los operadores. La búsqueda se procesará de la siguiente forma clearquest AND (7.1 OR clearcase) en lugar de lo que usted deseaba:
(clearquest AND 7.1) OR clearcase

NOT

El operador NOT excluye registros que contienen el término colocado después de NOT. Esto equivale a una diferencia que utiliza conjuntos. Se puede utilizar el signo de exclamación (!) en lugar de la palabra NOT. Para buscar registros que contengan clearquest pero no clearcase, use esta consulta: clearquest NOT clearcase

- (menos)

El operador (-) (también conocido como operador de prohibición) excluye registros que contienen el término ubicado directamente después del símbolo menos. Para buscar registros que contengan clearquest pero no clearcase, use esta consulta:
clearquest -clearcase


Agrupamiento

Lucene soporta el uso de paréntesis para agrupar cláusulas a fin de realizar sub-búsquedas. Esto puede resultar útil si usted desea controlar la lógica booleana para una consulta. Para buscar clearquest o clearcase, y 7.1, use esta consulta:
"(clearquest OR clearcase) AND 7.1" o "(clearquest OR clearcase) 7.1" (sin comillas).

Lucene soporta también el uso de paréntesis para agrupar múltiples cláusulas en un campo único. Para buscar un título que contenga la palabra clearcase y la frase clearquest web, use esta consulta:
Headline:(clearcase "clearquest web")


Cómo salir de los caracteres especiales

Lucene soporta la salida de los caracteres especiales que forman parte de la sintaxis de la búsqueda. A continuación se incluye la lista actual de caracteres especiales: + - && || ! ( ) { } [ ] ^ " ~ * ? : \

Para salir de estos caracteres, use la barra invertida \ antes del carácter. Por ejemplo, para buscar (1+1):2, use esta consulta: \(1\+1\)\:2

Para buscar UNCShare:\\myhost\myshare\, use:
UNCShare:\\\\myhost\\myshare\\


Métodos de búsqueda en la base de datos de ClearQuest

hay dos formas de buscar registros en una base de datos de ClearQuest:

  • Use la característica Query
  • Use la característica Find Record

Característica Query

Para buscar datos en una base de datos de ClearQuest, usted puede navegar a través del espacio de trabajo público o privado de ClearQuest, y buscar una consulta guardada que corresponda a su criterio de búsqueda. Si no existe tal consulta guardada, usted deberá elaborar una y luego ejecutarla para recuperar el registro correspondiente. La búsqueda es realizada por el servidor de la base de datos y puede tener implicancias de rendimiento, en especial en el caso de cadenas de líneas múltiples, grandes conjuntos de datos, o la aplicación significativa de filtros (aumento de operaciones conjuntas).

Después de ejecutar la consulta, es posible que usted obtenga uno o más registros (o "No hay correspondencias" en el caso de que su consulta no obtenga resultados). Por lo general, cuando existen dos o más registros que corresponden a su consulta, los resultados obtenidos no tendrán un orden determinado a menos que usted mismo especifique un orden de clasificación.

Existen dos maneras de construir una consulta de ClearQuest:

  • A través del constructor de GUI Query
  • A través del constructor de SQL Query (este privilegio debe estar habilitado)

Cuando usted utiliza el constructor de SQL Query, debe conocer los nombres de los registros y los nombres de los campos de la base de datos (que no son los nombres de la visualización), y además, contar con sólidos conocimientos de SQL.

La desventaja de utilizar la característica Query es que en muchos casos es posible que usted desee determinar si hay un término, varios términos o una frase en particular en algún lugar de la base de datos de ClearQuest. La construcción de una consulta puede demorar mucho tiempo y puede resultar compleja y tener implicancias en el rendimiento de la base de datos. Además, debido a que la característica Query depende de un enunciado SQL, el efecto será que habrá limitaciones vinculadas a SQL y al proveedor de la base de datos. Más aún, una Consulta SQL no resulta ideal para una búsqueda eficiente en texto del mismo modo que lo son los Motores de búsqueda en texto completo.

Característica Find Record

La característica Find Record se utiliza cuando usted conoce el nombre de visualización (en su totalidad o solo su número), o la ID de la base de datos (DBID) del registro (no todos los clientes soportan Find Record por DBID, por ejemplo, ClearQuest lo hace en Eclipse). En ese caso, y si usted ingresa una ID de registro válida, se devuelve un único registro resultado de la búsqueda; de otro modo, no se devuelve ningún registro.

La desventaja de utilizar la característica Find Record es que, a menos que usted conozca el nombre de visualización (y demás) del registro que busca, la búsqueda fallará.


Opciones de búsqueda en texto completo

Con la característica Full-Text Search de ClearQuest Web V7.1, se encuentran disponibles ahora dos nuevas capacidades de búsqueda: Full-Text Search Básica e Intermedia.

La Full-Text Search Básica es similar a la característica existente Find Record. Usted verá un aviso como el que se muestra en la Figura 1.

Campo de entrada de consultas de Full-Text Search Básica
text box next to Search button

En lugar de ingresar el nombre de visualización o DBID (database ID) del registro, ingrese términos o frases de Full-Text Search como texto simple o complejo. Si usted escribe ClearQuest, se devolverán como resultado todos los registros indizados que contienen la palabra clearquest (con cualquier combinación de mayúsculas y minúsculas, como por ejemplo clearquest, ClearQuest, CLEARQUEST, etc.) ubicados en cualquiera de los campos indizados. Para el término de búsqueda spell companies de la base de datos lista para usar SAMPL de ClearQuest, se devolverá el resultado que se muestra en la Figura 2, con columnas para Calificación, Tipo de registro, ID de registro, y Contenidos de registro.

Resultados de la búsqueda de la consulta "spell companies"
results in table format, screen capture

Presione para ampliar

Si los resultados provienen de múltiples tipos de registros, la columna Record Type (Tipo de registro) mostrará a qué tipo de registro pertenece el registro del resultado. La columna Record Contents (Contenidos de registro) será el valor de campo designado para el tipo de registro con un resultado, que fue configurado por el administrador de ClearQuest Full-Text Search.

Por ejemplo, si existe un resultado en el tipo de registro de Cliente y su campo de visualización designado es Name (Nombre), se devolverá el contenido del campo Name para el registro del resultado. Todos y cada uno de los tipos de registros tendrá su propio campo de visualización designado.

Debido a que usted es un usuario avanzado que comprende la sintaxis de la característica Full-Text Search (sintaxis de búsqueda de Lucene según lo descripto anteriormente), además del esquema de su base de datos ClearQuest database, usted estará en condiciones de escribir un término complejo en Full-Text Search para acotar la búsqueda. Por ejemplo, si usted escribeHeadline:spelling, la búsqueda sólo arrojará registros con la palabra spelling en el campo Headline (Título) de cualquier tipo de registro. Si usted desea acotar aún más la búsqueda para encontrar solo el defecto del tipo de registro, escriba:
Headline:spelling record_type:Defect

La Full-Text Search Intermedia amplía el caso de uso de Full-Text Search Básica ofreciendo cierto nivel de control sobre cuáles son los tipos de de registros a los cuales se limitará una búsqueda. Al seleccionarla, usted verá un aviso como el que se muestra en la Figura 3, que muestra las opciones de Search Scope (Alcance de la Búsqueda) que se deben marcar: Customer, Project, Defect, Email Rule.

Búsquedas con alcance de búsqueda ampliado
Query field with check boxes underneath

En este caso, usted podrá escribir su término de búsqueda en el modo básico de Full-Text Search, pero tendrá la opción de seleccionar qué tipos de registros podrá utilizar para limitar la búsqueda.


Administración y configuración

Para colaborar con la configuración y la administración de Full-Text Search, ClearQuest V7.1 ofrece herramientas, como por ejemplo cqtssetup.pl y cqtsdbcrawler.pl. Además, Solr incluye herramientas que sirven para configurar y administrar Lucene, tales como la página admin y Luke.

Administración de índices

Para la administración de índices, como administrador de ClearQuest, usted cuenta con los medios para configurar las siguientes propiedades:

Actualización de índices

Esta configuración le dice al extractor de registros con qué frecuencia debe verificar la base de datos de ClearQuest para buscar registros nuevos o actualizados para la indización. Piense en esta configuración como la frecuencia de sincronización de IBM® Rational® ClearCase MultiSite®. Para Full-Text Search, la configuración predeterminada para Update mode Record Extractor (Extractor de registros en modo actualizar) es la de verificar los registros nuevos o actualizados cada 10 minutos. Que un cambio se vea reflejado en el resultado de la búsqueda puede demorar hasta 10 minutos.

Record-Type Index (Índice de tipos de registro)

Esta configuración permite al administrador configurar cuáles son los tipos de registros que se deben indizar o no.

Record-Field Index (Índice de campos de registro)

Esta configuración es un subconjunto de un índice de tipos de registros que permite al administrador configurar cuáles son los campos que se deben indizar para un Record-Type Index.

Ubicación de los índices en Solr y Lucene

Esta configuración permite al administrador especificar la ubicación física de los índices de Solr y Lucene dentro de un sistema de archivos. Para lograr un rendimiento óptimo, se aconseja ubicar su índice en un disco del sistema no operativo que funcione a 10,000 RPM, con alto tiempo de búsqueda y baja latencia.

Administración de búsquedas

Como administrador de ClearQuest, usted puede configurar las siguientes propiedades:

Columna de resultados de contenidos de registro

para cada tipo de registro que se indiza, el administrador de ClearQuest designa un campo con contenidos que serán utilizados en la columna Contenidos de cuando se obtengan resultados de una búsqueda en texto completo, idealmente en un campo descriptivo, tal como Headline.

Tamaño del conjunto de resultados

Esta es la cantidad de resultados que se deben devolver por página. Sin embargo, esto quedará invalidado cuando usted fije su configuración de referencia para ClearQuest Web.

Tamaño de caché

Es la cantidad de resultados que van al caché, que será utilizado para navegar por el conjunto de resultados a medida que el usuario avanza de página.

Los detalles sobre cómo configurar algunos de estos parámetros y muchos otros se describen en la parte 2 de este artículo. Además, se encuentran documentados en ClearQuest V7.1 Full-Text Search InformationCenter.


Indización inicial en texto completo

Si usted está implantando ClearQuest V7.1 por primera vez, es probable que no cuente con registros preexistentes que requieran indización para la característica Full-Text Search. Si usted está actualizando la versión de ClearQuest a V7.1, entonces tendrá registros que será conveniente indizar para que los usuarios los puedan buscar. Esta es la situación más usual.

Indización inicial: usuarios que utilizan ClearQuest por primera vez

E neste caso de uso, usted está instalando y usando ClearQuest por primera vez en su organización. Al hacerlo, usted no cuenta con registros de ClearQuest. Los pasos que deberá tomar para habilitar la característica Full-Text Search incluyen dos tareas:

  1. Crear el esquema ClearQuest. Antes de considerar una búsqueda en texto completo, primero deberá crear su esquema, verificarlo, validarlo y aprobarlo.
  2. Configure la característica Full-Text Search. Luego de tener el esquema ClearQuest listo para su implantación, usted estará en condiciones de configurar y habilitar la búsqueda en texto completo en la base de datos de ClearQuest.

Indización: actualización de usuarios de ClearQuest

En este caso de uso, usted está actualizando la implantación de ClearQuest a la Versión 7.1, y desea habilitar la búsqueda en texto completo para sus registros existentes en ClearQuest. Siga estos pasos para habilitar la característica Full-Text Search:

  1. Configuración de Full-Text Search: configure y habilite la búsqueda en texto completo para la base de datos de ClearQuest.
  2. Índice de Full-Text Search en un registro de ClearQuest existente: Debido a que usted ya cuenta con registros de ClearQuest, éstos deberán ser indizados para que estén disponibles para futuras búsquedas.

Siguientes pasos

Con esto concluye la Parte 1 de esta serie de cuatro partes. La Parte 2 le muestra cómo instalar y configurar la característica Full-Text Search (consulte el vínculo a "Más sobre esta serie").


Agradecimientos

Un especial agradecimiento a David Sampson, staff technical support engineer de IBM Rational Client Support, que forma parte del equipo interdisciplinario de Rational ClearQuest. Este artículo no se habría podido completar sin el valioso aporte y la revisión técnica de David.

Recursos

Aprender

Obtener los productos y tecnologías

Comentar

Comentarios

developerWorks: Ingrese

Los campos obligatorios están marcados con un asterisco (*).


¿Necesita un IBM ID?
¿Olvidó su IBM ID?


¿Olvidó su Password?
Cambie su Password

Al hacer clic en Enviar, usted está de acuerdo con los términos y condiciones de developerWorks.

 


La primera vez que inicie sesión en developerWorks, se creará un perfil para usted. La información en su propio perfil (nombre, país/región y nombre de la empresa) se muestra al público y acompañará a cualquier contenido que publique, a menos que opte por la opción de ocultar el nombre de su empresa. Puede actualizar su cuenta de IBM en cualquier momento.

Toda la información enviada es segura.

Elija su nombre para mostrar



La primera vez que inicia sesión en developerWorks se crea un perfil para usted, teniendo que elegir un nombre para mostrar en el mismo. Este nombre acompañará el contenido que usted publique en developerWorks.

Por favor elija un nombre de 3 - 31 caracteres. Su nombre de usuario debe ser único en la comunidad developerWorks y debe ser distinto a su dirección de email por motivos de privacidad.

Los campos obligatorios están marcados con un asterisco (*).

(Por favor elija un nombre de 3 - 31 caracteres.)

Al hacer clic en Enviar, usted está de acuerdo con los términos y condiciones de developerWorks.

 


Toda la información enviada es segura.


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=90
Zone=Rational
ArticleID=428982
ArticleTitle=La característica Full-Text Search de IBM Rational ClearQuest, Versión 7.1: Parte 1. Generalidades de la búsqueda y casos de uso
publish-date=09032009