![]() |
Consultas tipo Google
Bueno, no se si el título es adecuado, paso a explicar lo que quiero.
Quiero buscar la frase "Club Delphi". Necesito que el resultado me devuelva registros donde encuentre: club, delphi, club delphi, Club, Delphi, Club Delphi. Ya he resuelto el tema de las mayúsculas/minúsculas, acentos; pero no doy con la forma de buscar frases. Espero haberme explicado bien. Gracias. |
Hola Santiago.
Con la clausula like no te funciona? Saludos |
Cita:
Tengo una tabla:
Uso Delphi XE5, Firebird 2.1. Se presenta una ventana donde me deben devolver los libros que tengo, y los criterios de búsqueda son, por ejemplo: por nombre del libro, por nombre del autor. Ahora bien, el tipo de busca un libro por autor: "Gabriel García Márquez" Lo que quiero que la consulta devuelva son los registros que tengan autores con, por ejemplo: Gabriel García Márquez; Gabriel; Márquez; García, ... Bajo este concepto, me tendría que devolver libros de Gabriel García Márquez, Gabriel Hurtado, Juan Márquez Linares, etc., etc. Bueno, espero que ahora esté mejor explicado. Gracias. |
Tendrás que dividir en palabras antes de realizar la búsqueda y luego utilizar OR.
|
Hola de nuevo.
Comente lo del like ya que pensaba que buscabas por una parte de codigo determinado, al poner Gabr, te buscaria la cadena que contuviera Gabr, tanto Gabriel , como Gabrino, etc. Ahora si que con el ejemplo he visto realmente lo que quieres buscar. Supongo que la respuesta de Neftali es la idonea, yo no he utilizado nunca una búsqueda así, la considero un poco ambigua ya que si buscas por Gabriel Garcia no le veo el porque te tiene que devolver Juan Marquez, diferente si buscaras Marquez que te devolviera todos. En fin cada aplicación tiene sus entresijos y necesidades y estos los conoce solo el programador y quien le ha encargado el trabajo. Seguiré atento al hilo por si puedo aprender algo nuevo para un futuro, nunca se sabe.... Saludos Josep |
Cita:
Que se yo: Pero creo que esto es un buen comienzo. |
Eso se llama "Full text search". FB no tiene soporte nativo, pero hay opciones:
http://stackoverflow.com/questions/9...ird-and-delphi (Ahi mencionan a MUTIS, un proyecto mio pero ya esta muerto). En cambio, con Sqlite / Postgres es trivial, ya que viene de fabrica. Seria muy facil de integrar sqlite (ya que es embeido). Tengo un ejemplo en python, pero tiene los links con mas info: http://runnable.com/Ur8myPOxx4hmAARP...query-and-fts4 Una explicacion del fundamento de todo esto: https://www.tbray.org/ongoing/When/2...30/OnSearchTOC https://en.wikipedia.org/wiki/Search_engine_indexing (En especial, el indice invertido y el de sufijo). P.D: El sitio de firebird enlaza aun tutorial de como hacer una implementacion de FTS: http://www.firebirdfaq.org/faq328/ |
Cita:
Tiene la ventaja de que ignora los espacios que aparezcan de forma consecutiva. NOTA: Tengo pendiente optimizar el código de esta función (actualmente no me gusta). |
Cita:
|
Cita:
|
| La franja horaria es GMT +2. Ahora son las 04:51:51. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi