A continuación explicaré un poco la sintaxis de la búsqueda en Lucene.
A la hora de realizar la búsqueda, podemos indicarle a Lucene cuales son los campos en los que queremos que consulte, esto se haría separando los campos de la consulta mediante “:”, es decir, nombre_campo:consulta.
Algunos de los caracteres especiales de Lucene son:
? : Implicaría una coincidencia de cualquier cáracter. Por ejemplo, “hol?” nos devolvería cualquier palabra que empiece por “hol” seguida de cualquier cáracter.
*: Implicaría la coincidencia múltiple de cualquier cáracter. Por ejemplo, “hol*” nos devolvería cualquier palabra que empiece por “hol” seguida de cualquier cosa.
Lucene también tiene la opción del uso de la lógica o Fuzzy logic, que se basa en el algoritmo de la búsqueda de Levenshtein. Haciendo uso de, “~”, al final de una sola palabra, por ejemplo, hola~, nos devolvería todas las palabras similares a hola. También se le puede aplicar un parámetro entre 0 y 1 para indicar mayor o menor similitud: hola~0,8. Si no se le indica nada, toma por defecto el valor 0,5.
Así mismo, también tenemos la búsqueda por rangos que sería de la siguiente manera, fecha: [20020101 to 20030101] Hay que tener en cuenta que las consultas Rango no están reservados para los campos de fecha. Este tipo de búsquedas no son sólo para fechas también se pueden hacer para palabras, titulo:{Aida TO Carmen}, que nos devolvería todos los documentos cuyos títulos están entre Aida y Carmen, pero sin incluir el Aida y Carmen.
Para darle relevancia a un término lo único que tenemos que hacer es ponerle ^, por ejemplo, hola^4, el valor no puede ser negativo aunque si puede ser menor que uno.
Se le pueden aplicar condiciones a las búsquedas mediante operadores booleandos como:
“+”: Indica que debe existir la palabra en el documento.
OR: Indica la unión de los conjuntos de palabras, también se puede usar ||.
NOT: Indica que no debe existir la palabra en el documento.
“-”: Indica que no debe existir en el documento el conjunto de palabras.
AND: Indica la unión de los conjuntos de palabras.
Estas son algunas de las características básicas de la sintaxis de búsqueda de Lucene, espero que haya sido útil.
Un saludo.
