Foros del Web » Programando para Internet » PHP »

AYuda Lucene!

Estas en el tema de AYuda Lucene! en el foro de PHP en Foros del Web. Hola, Alguien me puede decir que ve mal en este codigo Código PHP:          public function   deleteBookFromSearch ( $idBook ){                       $path  =  $this -> ...
  #1 (permalink)  
Antiguo 16/08/2010, 09:28
 
Fecha de Ingreso: junio-2005
Ubicación: Barcelona
Mensajes: 458
Antigüedad: 18 años, 10 meses
Puntos: 4
AYuda Lucene!

Hola,

Alguien me puede decir que ve mal en este codigo

Código PHP:
        public function  deleteBookFromSearch($idBook){
        
            
$path $this->indexBaseDir.DIRECTORY_SEPARATOR.'book-index';

               if (!
file_exists($path)){return 0;}
            
//$this->openIndex($index);
            //$query = "idBook:$idBook";
            
$indexZend_Search_Lucene::open($path);    
            
$term  = new Zend_Search_Lucene_Index_Term($idBook'idBook');    
            
$query = new Zend_Search_Lucene_Search_Query_Term($term);    
            print 
"QUERY=".$query."<BR>";
            
$hits  $index->find($query);
            
            if(
count($hits) > 0){
                
// debería ser un solo registro
                
foreach ($hits as $hit) {
                print 
"hitIdBook=".$hit->idBook;
                    
                    
$index->delete($hit->idBook);
                    
$index->commit();
                }
            }
            
$index->optimize();
        } 
EL tema es que introduzco por ejemplo 3 libros (que tienen ids 1,2,3), y borro por ejemplo la 1 y del indice me ha borrado la 2 pero no la 1...

Saludos y gracias!
__________________
La ficción es y será mi única realidad
  #2 (permalink)  
Antiguo 16/08/2010, 17:34
Avatar de silvanha  
Fecha de Ingreso: marzo-2006
Ubicación: En mi mundo de sueños
Mensajes: 653
Antigüedad: 18 años, 1 mes
Puntos: 65
Respuesta: AYuda Lucene!

Estas completamente seguro que el ID que envías es el del libro uno, así a simple vista no se ve que haya algún error por el cual seleccione el segundo en lugar del primero..
__________________
●•· No hay nada imposible..
●•· Vico-X.. ;)
  #3 (permalink)  
Antiguo 17/08/2010, 01:22
 
Fecha de Ingreso: junio-2005
Ubicación: Barcelona
Mensajes: 458
Antigüedad: 18 años, 10 meses
Puntos: 4
Respuesta: AYuda Lucene!

El tema (que creo yo) es que cuando creas el primer libro tiene id1, pues el crea en el indice id 0 ydespues para el 2 crea el 1 etc
__________________
La ficción es y será mi única realidad
  #4 (permalink)  
Antiguo 17/08/2010, 16:28
Avatar de silvanha  
Fecha de Ingreso: marzo-2006
Ubicación: En mi mundo de sueños
Mensajes: 653
Antigüedad: 18 años, 1 mes
Puntos: 65
Respuesta: AYuda Lucene!

intenta mandando a imprimir el Id, con eso te das una idea de si lo que crees es cierto o no??

o quizás ya lo intentaste, en ese caso porque no revisas los Id's de tu tabla
__________________
●•· No hay nada imposible..
●•· Vico-X.. ;)
  #5 (permalink)  
Antiguo 18/08/2010, 03:24
 
Fecha de Ingreso: junio-2005
Ubicación: Barcelona
Mensajes: 458
Antigüedad: 18 años, 10 meses
Puntos: 4
Respuesta: AYuda Lucene!

Ya lo consegui y creo que ya funciona bien:

Código PHP:
public function  deleteBookFromSearch($idBook){
        
       
            
$index $this->indexBaseDir.DIRECTORY_SEPARATOR.'book-index';
            
               if (!
file_exists($index)){
                return 
0;
            }
            
            
$hadle Zend_Search_Lucene::open($index);
            
            
//$this->openIndex($index);
            
$query "idBook:$idBook";
            
            
$hits =  $hadle->find($query);

            
$num 0;
            foreach (
$hits as $hit){
                
$hadle->delete($hit->idBook-1);
                
$hadle->commit(); 
                  
$num++;    
                  
            }
            return 
$num;
        
    } 
__________________
La ficción es y será mi única realidad
  #6 (permalink)  
Antiguo 18/08/2010, 11:44
Avatar de silvanha  
Fecha de Ingreso: marzo-2006
Ubicación: En mi mundo de sueños
Mensajes: 653
Antigüedad: 18 años, 1 mes
Puntos: 65
Respuesta: AYuda Lucene!

no pues perfecto, eres otro más de los que se responden solos

saludos! ^^ y suerte ;)
__________________
●•· No hay nada imposible..
●•· Vico-X.. ;)
  #7 (permalink)  
Antiguo 19/08/2010, 01:54
 
Fecha de Ingreso: junio-2005
Ubicación: Barcelona
Mensajes: 458
Antigüedad: 18 años, 10 meses
Puntos: 4
Respuesta: AYuda Lucene!

jeje pues si,

Aunque pregunte no me dedico a esperar solo sino a irlo intentando y dejo la solución por si a alguien le puede ayudar

Saludos
__________________
La ficción es y será mi única realidad

Etiquetas: lucene
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 00:55.