public function cromSolar($id, $caso = null) { $adapter = $this->tableGateway->getAdapter(); $sql = new Sql($adapter); $selecttot = $sql->select()->from('ta_plato')->join(array('c' => 'ta_comentario'), 'c.ta_plato_in_id=ta_plato.in_id', array('cantidad' => new \Zend\Db\Sql\Expression('COUNT(c.in_id)')), 'left')->join('ta_tipo_plato', 'ta_plato.ta_tipo_plato_in_id=ta_tipo_plato.in_id ', array('tipo_plato_nombre' => 'va_nombre'), 'left')->join(array('pl' => 'ta_plato_has_ta_local'), 'pl.Ta_plato_in_id = ta_plato.in_id', array(), 'left')->join(array('tl' => 'ta_local'), 'tl.in_id = pl.Ta_local_in_id', array('latitud' => 'de_latitud', 'longitud' => 'de_longitud', 'direccion' => 'va_direccion', 'telefono' => 'va_telefono'), 'left')->join(array('tr' => 'ta_restaurante'), 'tr.in_id = tl.ta_restaurante_in_id', array('restaurant_nombre' => 'va_nombre', 'restaurant_estado' => 'en_estado'), 'left')->join(array('tc' => 'ta_tipo_comida'), 'tc.in_id = tr.Ta_tipo_comida_in_id', array('nombre_tipo_comida' => 'va_nombre_tipo'), 'left')->join(array('tu' => 'ta_ubigeo'), 'tu.in_id = tl.ta_ubigeo_in_id', array('distrito' => 'ch_distrito', 'departamento' => 'ch_departamento'), 'left')->where(array('ta_plato.in_id' => $id)); $selecttot->group('ta_plato.in_id'); $selectString = $sql->getSqlStringForSqlObject($selecttot); $results = $adapter->query($selectString, $adapter::QUERY_MODE_EXECUTE); $plato = $results->toArray(); $selectto = $sql->select()->from('ta_plato')->join(array('tpt' => 'ta_plato_has_ta_tag'), 'tpt.Ta_plato_in_id = ta_plato.in_id', array('tag_id' => 'ta_tag_in_id'), 'left')->join(array('tt' => 'ta_tag'), 'tt.in_id =tpt.ta_tag_in_id', array('tag' => 'va_nombre'), 'left')->where(array('ta_plato.in_id' => $id)); $selectStrin = $sql->getSqlStringForSqlObject($selectto); $result = $adapter->query($selectStrin, $adapter::QUERY_MODE_EXECUTE); $tag = $result->toArray(); $solr = \Classes\Solr::getInstance()->getSolr(); if ($solr->ping()) { if ($caso !== 1) { $solr->deleteByQuery('id:' . $id); } $document = new \Apache_Solr_Document(); $document->id = $id; $document->name = $plato[0]['va_nombre']; $document->tx_descripcion = $plato[0]['tx_descripcion']; $document->va_precio = $plato[0]['va_precio']; $document->en_estado = $plato[0]['en_estado']; $document->plato_tipo = $plato[0]['tipo_plato_nombre']; $document->va_direccion = $plato[0]['direccion']; $document->restaurante = $plato[0]['restaurant_nombre']; $document->tipo_comida = $plato[0]['nombre_tipo_comida']; $document->en_destaque = $plato[0]['en_destaque']; $document->va_telefono = $plato[0]['telefono']; $document->latitud = $plato[0]['latitud']; $document->longitud = $plato[0]['longitud']; $document->departamento = $plato[0]['departamento']; foreach ($tag as $resultado) { $document->setMultiValue('tag', $resultado['tag']); } $document->distrito = $plato[0]['distrito']; $document->va_imagen = $plato[0]['va_imagen']; $document->comentarios = $plato[0]['cantidad']; $document->restaurant_estado = $plato[0]['restaurant_estado']; $document->puntuacion = $plato[0]['Ta_puntaje_in_id']; $solr->addDocument($document); $solr->commit(); } }
public function eliminarsolarAction() { $solr = \Classes\Solr::getInstance()->getSolr(); if ($solr->ping()) { $solr->deleteByQuery('*:*'); $solr->commit(); $solr->optimize(); echo 'cron finalizado eliminar'; exit; } }
public function jsonmapasaAction() { $distrit = $this->params()->fromQuery('distrito'); $view = new viewModel(); $view->setTerminal(true); $valor1 = explode(',', $distrit); $distrito = $valor1[0]; $texto = $this->params()->fromQuery('q'); setcookie('distrito', $distrito); $valor = explode(" ", $texto); if ($valor[0] == 'restaurante:') { $buscar = $valor[1] . ' ' . $valor[2] . ' ' . $valor[3] . ' ' . $valor[4]; $plato = $valor[0] . '"' . $buscar . '"'; } elseif ($valor[0] == 'tag:') { $buscar = $valor[1] . ' ' . $valor[2] . ' ' . $valor[3]; $plato = $valor[0] . '"' . $buscar . '"'; } elseif ($valor[0] == 'name:') { $buscar = $valor[1] . ' ' . $valor[2] . ' ' . $valor[3] . ' ' . $valor[4]; $plato = $valor[0] . '"' . $buscar . '"'; } else { $filter = new \Zend\I18n\Filter\Alnum(true); $plato = $filter->filter($texto); setcookie('q', $texto); } if ($distrito and $distrito != 'LIMA') { $distrit = '"' . $distrito . '"'; $resultados = false; $palabraBuscar = isset($plato) ? $plato : false; $list = 1000; $fd = array('fq' => 'en_estado:activo AND restaurant_estado:activo AND distrito:' . strtoupper($distrito), 'fl' => 'id,latitud,longitud,tx_descripcion,va_imagen,restaurante_estado,restaurante,name,plato_tipo,distrito', 'wt' => 'json'); if ($palabraBuscar) { $solar = \Classes\Solr::getInstance()->getSolr(); if (get_magic_quotes_gpc() == 1) { $palabraBuscar = stripslashes($palabraBuscar); } try { $resultados = $solar->search($palabraBuscar, 0, $list, $fd); } catch (Exception $e) { die("<html><head><title>SEARCH EXCEPTION</title><body><pre>{$e->__toString()}</pre></body></html>"); } } } elseif ($distrito == 'LIMA') { $limite = 1000; $resultados = false; $palabraBuscar = isset($plato) ? $plato : false; $fd = array('fq' => 'en_estado:activo AND restaurant_estado:activo AND departamento:' . strtoupper($distrito), 'fl' => 'id,latitud,longitud,tx_descripcion,va_imagen,restaurante_estado,restaurante,name,plato_tipo,distrito', 'wt' => 'json'); if ($palabraBuscar) { $solar = \Classes\Solr::getInstance()->getSolr(); if (get_magic_quotes_gpc() == 1) { $palabraBuscar = stripslashes($palabraBuscar); } try { $resultados = $solar->search($palabraBuscar, 0, $limite, $fd); // var_dump($resultados);exit; } catch (Exception $e) { $this->redirect()->toUrl('/'); } } } else { $limite = 1000; // $distrito= '"LIMA"'; $resultados = false; $palabraBuscar = isset($plato) ? $plato : false; $fd = array('fq' => 'en_estado:activo AND restaurant_estado:activo ', 'fl' => 'id,latitud,longitud,tx_descripcion,va_imagen,restaurante_estado,restaurante,name,plato_tipo,distrito', 'wt' => 'json'); if ($palabraBuscar) { $solar = \Classes\Solr::getInstance()->getSolr(); if (get_magic_quotes_gpc() == 1) { $palabraBuscar = stripslashes($palabraBuscar); } try { $resultados = $solar->search($palabraBuscar, 0, $limite, $fd); // var_dump($resultados);exit; } catch (Exception $e) { $this->redirect()->toUrl('/'); } } } echo $resultados->getRawResponse(); exit; }
public function eliminaprevia2($id) { $solr = \Classes\Solr::getInstance()->getSolr(); if ($solr->ping()) { $solr->deleteByQuery('id:' . $id); } $solr->commit(); $solr->optimize(); }