martes, 2 de septiembre de 2008

Solr case sensitive wildcard searches

Al poner un * solr lo toma como que ya hiciste la pega de analizador, toma la palabra tal cual la escribiste y la busca en la BD de palabras que está en lowercase. Por eso, "Kong*" hace que busque en una BD donde está "kong", por lo que no arroja resultados.
Si buscas "Kong", ahí sí que hará la tarea de análisis, entre las cosas que hará está ponerla en minúsculas y encontrará a kong.
Cuando buscas sin *, puedes poner mayúsculas y minúsculas. Si buscas Kong, kong o kong*, no tiene problemas en encontrar resultados.
La idea es que si le pones * solr lo toma como que ya le estás ayudando de manera suficiente al motor de búsqueda, y se salta la tarea de análisis, por lo que él no hará más modificaciones a la query con *, como ponerla en lowercase, quitarle espacios, guiones, etc.
Entonces, se necesita que las búsquedas con * vayan en minúsculas.
Ref:
Wildcard queries are tricky here. What happened when you indexed is the analyzer lowercased the terms. But wildcard "terms" are not analyzed (think about stemming and other types of filters, where passing a wildcard term just doesn't make sense).
http://groups.google.com/group/acts_as_solr/browse_thread/thread/42920dc2dcc5fa88

No hay comentarios: