
Duda con Oracle Text
Publicado por Juan (3 intervenciones) el 27/09/2016 14:00:14
Hola a todos,
Nuestra BD está creada con UTF-8 (ya que es una BD con información en múltiples idiomas) en Oracle 11G.
Hemos generado índices de Oracle Text
Cuando buscamos por “contains”, tenemos el siguiente problema:
Si, antes de ejecutar la consulta, establecemos ALTER SESSION SET NLS_COMP="LINGUISTIC":, el nº de resultados es correcto (no tiene en cuenta ni los acentos ni las mayúsculas – minúsculas), pero ES MUY LENTA (no está utilizando realmente los índices)
En cambio, si NO cambiamos el parámetro NLS_COMP (dejamos el de defecto que creo que es BINARY), y lanzamos la misma consulta, es muy rápida (usa los índices), pero en la búsqueda NECESARIAMENTE tiene en cuenta que las palabras encontradas sean exactamente iguales a las que hemos escrito (diferencia con o sin acento, mayúsculas,…). Este comportamiento no es correcto en una búsqueda de texto libre como la que nos ocupa.
Hemos probado a buscar utilizando “fuzzy” en lugar de “contains”, pero nos devuelve muchos registros (mucho ruido), y en nuestra aplicación, tampoco es necesaria ese tipo de consulta.
No sabemos cómo solucionarlo, si es un problema a la hora de generar los índices, diseño de BD, etc,..
Reciban un cordial saludo.
Nuestra BD está creada con UTF-8 (ya que es una BD con información en múltiples idiomas) en Oracle 11G.
Hemos generado índices de Oracle Text
Cuando buscamos por “contains”, tenemos el siguiente problema:
Si, antes de ejecutar la consulta, establecemos ALTER SESSION SET NLS_COMP="LINGUISTIC":, el nº de resultados es correcto (no tiene en cuenta ni los acentos ni las mayúsculas – minúsculas), pero ES MUY LENTA (no está utilizando realmente los índices)
En cambio, si NO cambiamos el parámetro NLS_COMP (dejamos el de defecto que creo que es BINARY), y lanzamos la misma consulta, es muy rápida (usa los índices), pero en la búsqueda NECESARIAMENTE tiene en cuenta que las palabras encontradas sean exactamente iguales a las que hemos escrito (diferencia con o sin acento, mayúsculas,…). Este comportamiento no es correcto en una búsqueda de texto libre como la que nos ocupa.
Hemos probado a buscar utilizando “fuzzy” en lugar de “contains”, pero nos devuelve muchos registros (mucho ruido), y en nuestra aplicación, tampoco es necesaria ese tipo de consulta.
No sabemos cómo solucionarlo, si es un problema a la hora de generar los índices, diseño de BD, etc,..
Reciban un cordial saludo.
Valora esta pregunta


0