Caracteres especiales en la busqueda con Lucene

cancel
Showing results for 
Search instead for 
Did you mean: 
spilby
Active Member II

Caracteres especiales en la busqueda con Lucene

Estoy usando el buscador del explorador de nodos, con lucene, para encontrar nodos.

Tengo la propiedad: {http://www.alfresco.org/model/content/1.0}Test

con valor: 7

Si busco @cm\:Test:"7" me encuentra el nodo. Hasta aquí ok.

El problema es que quiero subir propiedades con separaciones entre palabras, por ej:

{http://www.alfresco.org/model/content/1.0}<Test><Primero>
{http://www.alfresco.org/model/content/1.0}<Test><Segundo>

o bien

{http://www.alfresco.org/model/content/1.0}{Test}{Primero}
{http://www.alfresco.org/model/content/1.0}{Test}{Segundo}

Algún tipo de caracter que me permita separar las palabras. Pero a la hora de buscar, no encuentra nada, o me dá un error de sintaxis.

He probado poniendo @cm\:<Test><Primero>:"7" y tambien @cm\:\<Test\>\<Primero\>:"7" pero no funciona.

¿Alguien sabe, por favor, cómo podría hacerlo? Algun caracter especial que me permita separar palabras (el _ funciona pero no me sirve). ¿O estoy haciendo mal las búsquedas? A ver si alguien me puede ayudar, please…

Merci!
1 Reply
spilby
Active Member II

Re: Caracteres especiales en la busqueda con Lucene

Me respondo a mi mismo por si puede ayudar a alguien con este problema.

Lucene trabaja con la ISO9075, por lo que hay que convertir esos caracteres especiales a esa ISO. En este link podéis ver las principales correspondencias de caracteres:

http://abstractspaces.wordpress.com/2008/05/07/sharepoint-column-names-internal-name-mappings-for-no...

Una forma simple de codificar correctamente esto es usar el método ISO9075.encode de org.alfresco.webservice.util, y te pasará esos caracteres especiales a los utilizados por esa ISO. Por ej, el espacio lo convierte en _x0020_.

Poniendo _x007b_Test_x007d__x007b_Primero_x007d_ me ha encontrado el nodo.