extraño comportamiento en busqueda con Lucene

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

extraño comportamiento en busqueda con Lucene

Estoy intentando realizar un pequeño web script que haga una busqueda en una determinada ruta y me entregue todos los resultados que contengan una cierta cadena, para esto utilizo lo siguiente


filtro = 'document';
var res = search.luceneSearch("(PATH:\"/app:company_home/cm:" + url.extension + "//*\" ) AND (@cm\\:name:*" + filtro + "*)");

los nombres de los documentos que estan dentro de un determinado nodo que estoy buscando son:

    Documento de Calificación Presentación Oral.doc
    Decálogo de las Presentaciones - Edmundo Leiva Lobos.doc
    Carta de Titulacion IEI 2011 2.doc
cuando filtro es igual a document, me encuentra solo el primer archivo, lo cual es correcto, pero si filtro es igual a documento, no existen resultados, con otra prueba comprobe que si busco cart, encuentra el ultimo, pero si busco carta, no encuentra nada. Estos resultados me dan a entender que el problema esta en los espacion despues de la palabra, si la cadena a buscar coincide con algo e inmediatamente hay un espacio, algo falla.

La verdad no se como resolver esto, estaria muy agradecido si alguien pudiera guiarme un poco en este tema, muchas gracias
5 Replies
cristinamr
Advanced

Re: extraño comportamiento en busqueda con Lucene

Buenas.

Me da que es lo que piensas: Si te fijas en la wiki de alfresco verás como viene varios ejemplos:

To find all nodes with the cm:name property containing words starting with "ban":
@cm\:name:ban*


To find all nodes with the cm:name property containing words ending with "ana":
@cm\:name:*ana


The standard Lucene query parser does not allow wild cards at the start for performance reasons. Use this with caution.


To find all nodes with the cm:name property containing words containing "anan":
@cm\:name:*anan*


To find all nodes with the cm:name property containing phrase "green banana":
@cm\:name:"green banana"

Entonces, te recomiendo que abras el explorador de nodos (aquí un tuto) y empieces a probar hasta dar con la síntaxis correcta. Recuerda que en la consola deberás seleccionar en el desplegable "lucene" y listo.

Te recomiendo que te centres solo en el cm:name que es lo que te está dando problemas.

Un saludo y espero que vaya bien  :wink:
--
VenziaIT: helping companies since 2005! Our ECM products: AQuA & Seidoc
gute
Member II

Re: extraño comportamiento en busqueda con Lucene

Muchas gracias, hare algunas pruebas en la consola que me indicas
cristinamr
Advanced

Re: extraño comportamiento en busqueda con Lucene

Prueba y nos comentas  :wink:

Cuando des con la solución, si no te importa ponla, así tendremos una referencia por si a alguien le courre en un futuro.

¡Un saludooo!
--
VenziaIT: helping companies since 2005! Our ECM products: AQuA & Seidoc
gute
Member II

Re: extraño comportamiento en busqueda con Lucene

Di con la solución (o al menos hasta ahora eso parece)


var query =  "(PATH:\"app:company_home/cm:" + url.extension + "//*\")";

if(args.filter != undefined){
     query += " AND (+@cm\\:name:\"*" + args.filter + "*\")";
}

var res = search.luceneSearch(query);

el problema estaba en unas " en la segunda parte


query += " AND (+@cm\\:name:\"*" + args.filter + "*\")";

anteriormente tenia escrito


query += " AND (+@cm\\:name:*" + args.filter + "*)";

sin las " antes del primer * ni después del segundo *, por lo que entiendo, sin estas comillas, la búsqueda cambia un poco, tal vez alguien con mayor experiencia y conocimiento pueda profundizar en ese tema.

Muchísimas gracias por la ayuda, creo que seré "cliente frecuente" de este foro
cristinamr
Advanced

Re: extraño comportamiento en busqueda con Lucene

Jaja, sin problemas. Me alegro que lo hayas solucionado  :mrgreen:

Nos vemos por aquí  :wink:

¡Un saludooo!
--
VenziaIT: helping companies since 2005! Our ECM products: AQuA & Seidoc