Búsquedas avanzadas.

03/06/2004 - 12:46 por Anonimo | Informe spam
Hola estoy desarrollando una aplicaciónweb que ataca a
una BBDD SQL Server y quería realizar una página para
Búsqueda Avanzada.

El caso que tengo una BBDD de libros y el usuario mete el
título de un libro. La búsqueda no tiene que ser exacta,
sino que se hará con LIKE

Por ejemplo, si el usuario metiera: "La cara oculta de
Delphi" habría que buscar todas las combinaciones de ese
título en la tabla de libros -es decir, buscar La oculta
cara Delphi, oculta cara La Delphi, oculta cara, oculta
Delphi, etc,; algo así como lo hace google.

Existe una forma óptima de hacerlo ? si es que es
posible hacerlo pues con tantos LIKEs creo que el
rendimiento bajará. .NET ofrece alguna solución ?.

Saludos cordiales.

Preguntas similare

Leer las respuestas

#1 Oscar Galvis
03/06/2004 - 20:08 | Informe spam
Google no hace lo q dices,
lo q realmente se hace es q busca q todas las palabras se encuentren en el
resultado sin importar el orden,
para eso dbes primero separarlas y lo puedes hacer con StreamTokenizer o
haciendo substrings desde
0 hasta el espacio, como quieras el caso es separar todas las
palabras... luego si haces una consulta q
filtras con like todas las palabras d tal forma q todas se encuentren en tu
resultado y listo!!!

Salu2



wrote in message
news:1794301c44958$0dffe3c0$
Hola estoy desarrollando una aplicaciónweb que ataca a
una BBDD SQL Server y quería realizar una página para
Búsqueda Avanzada.

El caso que tengo una BBDD de libros y el usuario mete el
título de un libro. La búsqueda no tiene que ser exacta,
sino que se hará con LIKE

Por ejemplo, si el usuario metiera: "La cara oculta de
Delphi" habría que buscar todas las combinaciones de ese
título en la tabla de libros -es decir, buscar La oculta
cara Delphi, oculta cara La Delphi, oculta cara, oculta
Delphi, etc,; algo así como lo hace google.

Existe una forma óptima de hacerlo ? si es que es
posible hacerlo pues con tantos LIKEs creo que el
rendimiento bajará. .NET ofrece alguna solución ?.

Saludos cordiales.
Respuesta Responder a este mensaje
#2 Juan Cristóbal Olivares C.
04/06/2004 - 04:03 | Informe spam
En realidad existen técnicas avanzadas para hacer indexaciones. Por ejemplo,
se puede contar con un repositorio [índice] de palabras e índices
numéricos... y enlazar estos índices numéricos a los textos... Luego se
hacen búsquedas de texto sólo en el índice de palabras y luego se buscan las
coincidencias con los índices numéricos... No es tan fácil de implementar,
pero el rendmiento que alcanza esta técnica es altamente superior a una
búsqueda de texto con LIKE u otra técnica similar.

Atte,
Juan C. Olivares
www.juancri.com



"Oscar Galvis" wrote in message
news:OWm$
Google no hace lo q dices,
lo q realmente se hace es q busca q todas las palabras se encuentren en el
resultado sin importar el orden,
para eso dbes primero separarlas y lo puedes hacer con StreamTokenizer o
haciendo substrings desde
0 hasta el espacio, como quieras el caso es separar todas las
palabras... luego si haces una consulta q
filtras con like todas las palabras d tal forma q todas se encuentren en


tu
resultado y listo!!!

Salu2



wrote in message
news:1794301c44958$0dffe3c0$
Hola estoy desarrollando una aplicaciónweb que ataca a
una BBDD SQL Server y quería realizar una página para
Búsqueda Avanzada.

El caso que tengo una BBDD de libros y el usuario mete el
título de un libro. La búsqueda no tiene que ser exacta,
sino que se hará con LIKE

Por ejemplo, si el usuario metiera: "La cara oculta de
Delphi" habría que buscar todas las combinaciones de ese
título en la tabla de libros -es decir, buscar La oculta
cara Delphi, oculta cara La Delphi, oculta cara, oculta
Delphi, etc,; algo así como lo hace google.

Existe una forma óptima de hacerlo ? si es que es
posible hacerlo pues con tantos LIKEs creo que el
rendimiento bajará. .NET ofrece alguna solución ?.

Saludos cordiales.


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida