Foros del Web » Programando para Internet » PHP »

Busquedas mas completas con mongoDB

Estas en el tema de Busquedas mas completas con mongoDB en el foro de PHP en Foros del Web. Hola amigos ando trabajando con mongoDB y me encuentro un problema a la hora de afinar con las busquedas, imaginemos que tengo esta cadena en ...
  #1 (permalink)  
Antiguo 16/04/2015, 22:54
 
Fecha de Ingreso: abril-2003
Mensajes: 587
Antigüedad: 21 años
Puntos: 5
Busquedas mas completas con mongoDB

Hola amigos ando trabajando con mongoDB y me encuentro un problema a la hora de afinar con las busquedas, imaginemos que tengo esta cadena en la base de datos:

Coca cola Lite 33 cl

Y necesito que lo encuentre si el usuario escribe:

cocacola 33cl o coca cola 33cl o lite 33cl

Estoy usando:
Código PHP:
$where=array( array('producto' => array('$regex' => new MongoRegex("/^$search/i"))) );

$cursor $tabla->find($where); 
Pero parece que no llega a afinar solo encuentra si escribo:
Coca cola

nada mas.

Alguien podría arrojar luz sobre este tema.
Gracias
__________________
Si la vida te da la espalda tocale el culo
  #2 (permalink)  
Antiguo 17/04/2015, 07:30
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Busquedas mas completas con mongoDB

El tema es tu expresión regular, al usar el marcador ^ le estás indicando que busque coincidencias sólo al inicio de la cadena, no en todas partes.

Por favor revisa una referencia de expresiones regulares para que aprendas a usarlas.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 17/04/2015, 07:47
 
Fecha de Ingreso: abril-2003
Mensajes: 587
Antigüedad: 21 años
Puntos: 5
Respuesta: Busquedas mas completas con mongoDB

A sus ordenes jefe! :D
__________________
Si la vida te da la espalda tocale el culo
  #4 (permalink)  
Antiguo 17/04/2015, 08:16
 
Fecha de Ingreso: abril-2003
Mensajes: 587
Antigüedad: 21 años
Puntos: 5
Respuesta: Busquedas mas completas con mongoDB

Amigo y si el texto esta asi:

Tacos de pulpo en salsa gallega Noly 90 g.

y buscamos " pulpo gallega"

como ponerlo para que lo encuentre? help!
__________________
Si la vida te da la espalda tocale el culo
  #5 (permalink)  
Antiguo 17/04/2015, 10:28
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Busquedas mas completas con mongoDB

Usando una expresión regular podría ser así:

Cita:
/.*pulpo.*gallega.*/i
Aunque no es la mejor solución.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #6 (permalink)  
Antiguo 17/04/2015, 13:10
 
Fecha de Ingreso: abril-2003
Mensajes: 587
Antigüedad: 21 años
Puntos: 5
Respuesta: Busquedas mas completas con mongoDB

seria asi la ????

Código PHP:
$where=array( 'producto' => array('$regex' => new MongoRegex("/.*$search.*$search.*/i")) ); 
__________________
Si la vida te da la espalda tocale el culo
  #7 (permalink)  
Antiguo 17/04/2015, 13:28
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Busquedas mas completas con mongoDB

No, para que veas lo que produce puedes imprimir la expresión antes:
Código PHP:
Ver original
  1. echo "/.*$search.*$search.*/i";

¿Qué resulta? ¿Te es útil así?

Tampoco se trata de que muevas el código sin saber lo que haces.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #8 (permalink)  
Antiguo 20/04/2015, 09:49
Avatar de Carlangueitor
Moderador ლ(ಠ益ಠლ)
 
Fecha de Ingreso: marzo-2008
Ubicación: México
Mensajes: 10.037
Antigüedad: 16 años, 1 mes
Puntos: 1329
Respuesta: Busquedas mas completas con mongoDB

¿Por que no usas la búsqueda de texto de MongoDB? http://docs.mongodb.org/manual/admin...n/indexes-text

Búsquedas con expresiones regulares de ese tipo me suena a dolores de trasero en el futuro, además de poco elegante. Si eso no te alcanza yo iría viendo motores de búsqueda como elasticsearch.


Saludos
__________________
Grupo Telegram Docker en Español

Etiquetas: busquedas, mongodb, tabla
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 17:12.