Ver Mensaje Individual
  #1 (permalink)  
Antiguo 14/11/2007, 21:02
rumo
 
Fecha de Ingreso: agosto-2006
Mensajes: 177
Antigüedad: 17 años, 8 meses
Puntos: 1
Zend_Search_Lucene

Hola, miren les cuento.

tengo una tabla en mysql ("miembros") con los alumnos de un colegio, los apoderados y los profesores.

Quiero un buscador donde pueda buscar por nombre, o RUT (rut es un numero identificador unico aca en chile).

ahora la pregunta es Es conveniente usar Zend_Search_Lucene para indexar los miembros y luego buscarlos, o me conviene crear mi propia funcion para esto.

Si es conveniente usar Zend_Search_Lucene para esto alguien me puede guiar en como hacerlo, ya que hice algunas pruebas pero no se si estoy bien encaminado o no, lo que hice es lo siguiente.

Creo el indice en "tmp/miembros_index", luego tomo todos los miembros de la base de datos y los indexo con un loop foreach, ahora no se si hago bien este ultimo paso:

Código PHP:
$doc->addField(Zend_Search_Lucene_Field::UnIndexed('id',$feed->id));
$doc->addField(Zend_Search_Lucene_Field::Keyword('nombre',htmlentities(strip_tags($feed->nombre))));
$doc->addField(Zend_Search_Lucene_Field::Keyword('apellido_paterno',htmlentities(strip_tags($feed->apellido_paterno))));
$doc->addField(Zend_Search_Lucene_Field::Keyword('apellido_materno',htmlentities(strip_tags($feed->apellido_materno))));
$doc->addField(Zend_Search_Lucene_Field::Keyword('rut',htmlentities(strip_tags($feed->rut))));

$index->addDocument($doc); 
finalmente guardo los cambios $index->commit();

esto me crea el indice con los "729" miembros actuales

pero este solo proceso se demora aprox 25 segundos, no se si esto se tiene que hacer cada vez que voy a buscar? o cada cierto tiempo. por que la idea es tener el indice actualizado o si hay alguna forma de actualizar solo los datos nuevos o algo

si alguien me puede apuntar en la direccion correcta lo agradeceria. Salu2.

Última edición por rumo; 14/11/2007 a las 21:07