Ver Mensaje Individual
  #1 (permalink)  
Antiguo 22/04/2013, 08:56
Avatar de meizerherzen
meizerherzen
 
Fecha de Ingreso: abril-2013
Ubicación: Panamá
Mensajes: 2
Antigüedad: 11 años, 6 meses
Puntos: 0
Sonrisa ¿ Manera eficiente de búsqueda ?

Me presento cordialmente ante ustedes y espero ser de gran ayuda en el foro.

y comienzo con una duda, sobre PHP y MYSQL para una búsqueda eficiente y rápida, generalmente tengo un programa que es muy parecido a un BOT de inteligencia artificial en donde no utilizo de nlp,wordnet ni java, simplemente pura información almacenada en la base de datos,

la lemantizacion es llevar la conjuncion del verbo a su manera original o masculina

tablas de verbos
tablas de lemantizacion
tablas de ortografia
tabla de posibles preguntas
tabla de posibles respuestas

y entre otras, y al pasar la pregunta insertada por todos los puntos como

limpieza, ortografia, lemantización llega a ser una pregunta totalmente limpia y valida para buscarla con una posible pregunta, y tengo una tabla que contiene 100,000 posibles preguntas lemantizadas y esto puede ser un poco complejo ya que he tenido experiencia con FULL TEXT / INSTR pero ellas generalmente me ocacionan daños o resultado incorrectos ¿porque?

por esto:

Pregunta: estoy buscando el perro::
Pregunta filtrada: yo buscar perro.

Pregunta en la base de datos: buscar perro julio, buscar perro perrera, buscar perro.

es posible que las funciones de MYSQL me devuelvan unas de ellas y cada una de ella contiene respuestas diferentes, de esta manera se vuelve ineficiente y no preciso, la manera que lo hago es

trayendo la información por FETCH() y revisar con STRPOS [[ stpos(Pregunta, ' '.basededatos.' ') ]] y cuando la encuentre haga break, pero todos sabemos que este metodo es bruto y ineficiente ya que tiene que traer todos los registros para revisarlos.

Ejemplo

Q1 = Q->query(SELECT pregunta FROM tabla);
WHILE(r1 = Q1->fetch()):
stpos(Pregunta, ' '.basededatos.' ') // TRUE OR FALSE
endwhile;


Si no me explique o no me entiendes me pueden decir para expresarme mejor.