Foros del Web » Programando para Internet » PHP »

Buscador inteligente php

Estas en el tema de Buscador inteligente php en el foro de PHP en Foros del Web. Hola amiguillos: Le quiero consultar como puedo hacer un buscador tipo mercadolibre, que busca las palabras ingresada en cualquier orden Ejemplos para que me entiendan: ...
  #1 (permalink)  
Antiguo 08/01/2012, 16:21
(Desactivado)
 
Fecha de Ingreso: diciembre-2011
Mensajes: 45
Antigüedad: 12 años, 4 meses
Puntos: 2
Buscador inteligente php

Hola amiguillos:
Le quiero consultar como puedo hacer un buscador tipo mercadolibre, que busca las palabras ingresada en cualquier orden Ejemplos para que me entiendan:

El buscador que yo tengo es asi:
Busco: Notebook nueva hp
Y me trae solo las publicaciones con el titulo exacto: Notebook nueva hp

El buscador de mercadolibre es asi:
Busco: Notebook nueva hp
Y me trae todas las publicaciones con el titulo en diferentes formas: Nueva notebook hp - Hp nueva notebook - Notebook hp nueva.

¿Como se hace? Saben
Gracias.
  #2 (permalink)  
Antiguo 09/01/2012, 08:45
Avatar de charlyalegret  
Fecha de Ingreso: septiembre-2011
Ubicación: Barcelona
Mensajes: 705
Antigüedad: 12 años, 7 meses
Puntos: 140
Respuesta: Buscador inteligente php

Hola! puedes ver el buscador simple que sale en el foro, que es FULLTEXT y trabaja como tu deseas. Eso sí, muestra resultados aunque sólo haya una coincidencia (y ordenado por el número de coincidencias), e ignora palabras cortas (no recuerdo si menores de 2-3 letras) a no ser que lo configures de otra manera. Es sensible a tildes o ñ, y no te muestra por ejemplo "nuevas" si has escrito "nueva".

http://www.forosdelweb.com/f18/aport...-mysql-632623/

También te dejo el siguiente hilo donde de otra forma, y con algunas limitaciones y otras ventajas, hice un buscador simple donde lo que hago es generar varias consultas según el número de palabras de la consulta, y donde tampoco importa el orden en que estén puestas las palabras. Puedes además usar AND o OR para que tenga en cuenta todas las palabras o que muestre resultados sólo con alguna coincidencia, y es insensible a tildes o caracteres como ñ o ç. Además, si escribes "nueva" también te mostrará resultados de "nuevas" o "nuevaloquesea".

http://www.forosdelweb.com/f18/busca...-demas-967133/

Si tienes alguna duda sobre este último, puedes consultarme o verlo funcionar en la web que encontrarás siguiendo mi firma y luego alguno de los enlaces que acaban dando a la web final (birdikus).

Saludos
  #3 (permalink)  
Antiguo 09/01/2012, 13:36
 
Fecha de Ingreso: octubre-2011
Ubicación: Peru
Mensajes: 75
Antigüedad: 12 años, 6 meses
Puntos: 2
Respuesta: Buscador inteligente php

No es complicado como se piensa solo crea la varaible:
$buscador = $_GET["palabra"];
sql="SELECT FROM * tabla WHERE palabra LIKE %buscador%";

Ahi tendrias la busqueda espero q te sirva
  #4 (permalink)  
Antiguo 09/01/2012, 14:04
 
Fecha de Ingreso: julio-2011
Ubicación: mexico
Mensajes: 41
Antigüedad: 12 años, 8 meses
Puntos: 5
Respuesta: Buscador inteligente php

si tu tabla de busqueda es innodeb no funcionará fulltext, por lo que podrias usar un buscador como sphinxsearch.

es un muy buen buscador que casi no concume registros en búsquedas hechas en milllones de registros.

otra solucion es hacer esto:

Código PHP:
Ver original
  1. $busqueda = 'La frase buscada';
  2. $sql="SELECT FROM * tabla WHERE palabra LIKE '%$busqueda%'";
  3. $res // ya sabes
  4.  
  5. if(empty($res)){
  6.     $b = explode(' ', $busqueda);
  7.     $sql="SELECT FROM * tabla WHERE palabra LIKE '%$b[0]%' OR LIKE '%$b[1]%'";
  8. }

y así, buscaria primero la frase completa si no la encuentra esxplota la frase y la divide para encontrar terminos individuales, podrias cambiar el OR por AND para que encuentre todos los terminos aunque sean desordenados etc.

será cosa de que le pienses.
  #5 (permalink)  
Antiguo 09/01/2012, 14:42
Avatar de portalmana  
Fecha de Ingreso: septiembre-2007
Ubicación: Montevideo-Uruguay
Mensajes: 633
Antigüedad: 16 años, 7 meses
Puntos: 80
Respuesta: Buscador inteligente php

Te dejo un buscador que funciona parecido a lo que quieres.

Buscador FullText
Codigo de la mas reciente version.

Las diferencias es que utiliza símbolos como +(and) -(excluir) ~(importancia negativa) "" (texto exacto) ..., Lo que si si ponemos 3 palabras pone siempre primero los resultados en que estan presente las 3 palabras, luego 2 ... etc si no se utiliza el simbolo de mas...

Saludos
__________________
"La imaginación es más importante que el conocimiento. El conocimiento es limitado, mientras que la imaginación no" -- A.Einstein
objetivophp.com,twitter.com/objetivophp

Última edición por portalmana; 09/01/2012 a las 14:53
  #6 (permalink)  
Antiguo 09/01/2012, 16:57
(Desactivado)
 
Fecha de Ingreso: diciembre-2011
Mensajes: 45
Antigüedad: 12 años, 4 meses
Puntos: 2
Respuesta: Buscador inteligente php

Cita:
Iniciado por Dani_devito Ver Mensaje
si tu tabla de busqueda es innodeb no funcionará fulltext, por lo que podrias usar un buscador como sphinxsearch.

es un muy buen buscador que casi no concume registros en búsquedas hechas en milllones de registros.

otra solucion es hacer esto:

Código PHP:
Ver original
  1. $busqueda = 'La frase buscada';
  2. $sql="SELECT FROM * tabla WHERE palabra LIKE '%$busqueda%'";
  3. $res // ya sabes
  4.  
  5. if(empty($res)){
  6.     $b = explode(' ', $busqueda);
  7.     $sql="SELECT FROM * tabla WHERE palabra LIKE '%$b[0]%' OR LIKE '%$b[1]%'";
  8. }

y así, buscaria primero la frase completa si no la encuentra esxplota la frase y la divide para encontrar terminos individuales, podrias cambiar el OR por AND para que encuentre todos los terminos aunque sean desordenados etc.

será cosa de que le pienses.
No me funciona me sale error

mi buscador es este
<td width="612" height="28" align="right"><form id="form2" name="form2" method="post" align="center" action="publicaciones.php">
&iquest;Que estas buscando?
<input type="text" name="busqueda" size="50" />
<input name="Submit2" type="submit" class="botones1" value="Buscar" />
</form>
</td>
<td width="160" align="left">
<form id="form3" name="form3" method="post" align="center" action="busquedaavanzada.php">
<input name="Submit3" type="submit" class="botones1" value="Busqueda avanzada"/>
</form>

gracias
  #7 (permalink)  
Antiguo 09/01/2012, 18:19
Avatar de memoadian
Colaborador
 
Fecha de Ingreso: junio-2009
Ubicación: <?php echo 'México'?>
Mensajes: 3.696
Antigüedad: 14 años, 10 meses
Puntos: 641
Respuesta: Buscador inteligente php

evidentemente te sale error, por que el código esta incompleto, necesitas saber un poco de php para acomodarlo a tus necesidades :)
  #8 (permalink)  
Antiguo 09/01/2012, 18:34
(Desactivado)
 
Fecha de Ingreso: diciembre-2011
Mensajes: 45
Antigüedad: 12 años, 4 meses
Puntos: 2
Respuesta: Buscador inteligente php

gracias........

Etiquetas: inteligente, buscadores
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:35.