Hi Juan,
 
You missed ZF version. It's important info, current SVN version doesn't use 
index.lock file, but there was a bug in index.lock processing in some post-1.0 
revision.
 
Nevertheless, that looks you use ZF 1.0 or 1.0.1.
Which filesystem do you use for the index?  flock() is used in 
Zend_Search_Lucene to organaze concurrent index processing, but it has 
limitations depending on filesystem type (ex. it doesn't work on NFS): 
http://ru2.php.net/manual/en/function.flock.php
 
 
With best regards,
   Alexander Veremyev.
 



________________________________

        From: Juan Felipe Alvarez Saldarriaga [mailto:[EMAIL PROTECTED] 
        Sent: Saturday, September 01, 2007 12:27 AM
        To: Alexander Veremyev; fw-general@lists.zend.com
        Subject: RE: RE: [fw-general] Zend_Search_Lucene - Fatal error when I 
try to load it
        
        
        I try to follow the example into the framework reference guide, so this 
is my code now:
         
        foreach ( $arrItemsData AS $intItemId => $arrItemData )
        {
            try
            {
                if ( false === is_dir( LUCENE_INDEX_PATH . 
"/{$arrItemData['identifier']}" ) )
                {
                    mkdir( LUCENE_INDEX_PATH . "/{$arrItemData['identifier']}" 
);
         
                    chmod( LUCENE_INDEX_PATH . "/{$arrItemData['identifier']}", 
0777 );
              
                    $objLuceneIndex = Zend_Search_Lucene::create( 
LUCENE_INDEX_PATH . "/{$arrItemData['identifier']}" );
                 }
                 else
                 {
                     $objLuceneIndex = Zend_Search_Lucene::open( 
LUCENE_INDEX_PATH . "/{$arrItemData['identifier']}" );
                 }
         
                 $objLuceneDocument = new Zend_Search_Lucene_Document();
         
                 $objLuceneDocument->addField( Zend_Search_Lucene_Field::Text( 
"url", PAGE_QUERY_STRING . "/{$arrItemData['page']['identifier']}" ) );
         
                 $objLuceneIndex->addDocument( $objLuceneDocument );
            }
            catch ( Exception $objError )
            {
                 throw new Exception( "This content can't be indexed 
({$arrItemData['identifier']} - " . LUCENE_INDEX_PATH . 
"/{$arrItemData['identifier']}) ({$objError->getMessage()})" );
            }
        }
         
        So, the I got the same issues, when the folder where I'll going to 
store the index file is not created, and I execute Zend_Search_Lucene::create 
method, the system fails, and show me this exception:
         
        Fatal error:  Uncaught exception 'Exception' with message 'Can't save 
this page (This content can't be indexed (en - 
/home/jfalvarez/php5/test_project/site/tmp/lucene/en) (Can't create index. It's 
under processing now)).'
         
        So at this point, I create the folder where I going to store this index 
and if I saw into this folder I have the index.lock file:
         
        [EMAIL PROTECTED]:~/projects/test_project/site/tmp/lucene$ ls -lR
        .:
        total 4.0K
        drwxrwxrwx 2 www-data www-data 4.0K Aug 31 22:36 en
         
        ./en:
        total 0
        -rw-r--r-- 1 www-data www-data 0 Aug 31 22:36 index.lock
         
        Now I try to save once again this data, and I got a new one exception: 
         
        Fatal error:  Uncaught exception 'Exception' with message 'Can't save 
this page (This content can't be indexed (en - 
/home/jfalvarez/php5/test_project/site/tmp/lucene/en) (Can't obtain shared 
index lock)).'
         
        I don't know what's going on, the loop at the start of this email is 
inside a transaction, but I don't know if this mess all the process.
         
        Thx for any help :).

________________________________

        From: Juan Felipe Alvarez Saldarriaga [mailto:[EMAIL PROTECTED] 
        Sent: MiƩrcoles, 29 de Agosto de 2007 08:20 a.m.
        To: Alexander Veremyev; fw-general@lists.zend.com
        Subject: RE: [fw-general] Zend_Search_Lucene - Fatal error when I try 
to load it
        
        
        1. Im using ZFW 1.0.1, Debian :)
        2. Yes, Lucene class is a extended class from Zend_Search_Lucene.
        3. The values are /home/jfalvarez/projects/my_test_site/tmp/lucene/en 
and /home/jfalvarez/projects/my_test_site/tmp/lucene/es (LUCENE_INDEX_PATH -> 
/home/jfalvarez/projects/my_test_site/tmp/lucene/) and the identifier value is 
"en" or "es", the two languages on my system, Im using the Zend_Locale on my 
application too, so I got this to languages identifiers.
         
        I'll try to implement it using "create" and "open" methods, I hope that 
works.
         
        Thx :).

________________________________

        From: Alexander Veremyev [mailto:[EMAIL PROTECTED] 
        Sent: MiƩrcoles, 29 de Agosto de 2007 08:52 a.m.
        To: Juan Felipe Alvarez Saldarriaga; fw-general@lists.zend.com
        Subject: RE: [fw-general] Zend_Search_Lucene - Fatal error when I try 
to load it
        
        
        Hi Juan,
         
        1. Please describe, which ZF version and OS you use.
         
        2. Is Lucene class your wrapper around Zend_Search_Lucene? Use 
        Zend_Search_Lucene::create($indexPath);
        and
        Zend_Search_Lucene::open($indexPath);
        for index creation and opening. It should help at least with the second 
problem.
         
        3. Could you test your script using a command line and add some debug 
output (check LUCENE_INDEX_PATH . "/{$arrLanguageData['identifier']}" value)?
         
         
        With best regards,
           Alexander Veremyev.
         
        
        

________________________________

                From: Juan Felipe Alvarez Saldarriaga [mailto:[EMAIL PROTECTED] 
                Sent: Wednesday, August 29, 2007 12:05 AM
                To: fw-general@lists.zend.com
                Subject: [fw-general] Zend_Search_Lucene - Fatal error when I 
try to load it
                
                
                :)
                 
                I have this situation:
                 
                * Two index files, one for english and one for spanish content, 
(/home/jfalvarez/projects/my_test_site/tmp/lucene/en - 
/home/jfalvarez/projects/my_test_site/tmp/lucene/es), this index files are 
created using this portion of code:
                 
                 foreach ( $arrSystemLanguages AS $intLanguageId => 
$arrLanguageData )
                  {
                   // If the Lucene language folder is not created, then try to 
make an mkdir and set permissions over the new folder.
                   if ( false === is_dir( LUCENE_INDEX_PATH . 
"/{$arrLanguageData['identifier']}" ) )
                   {
                    try
                    {
                     // Create filesystem folder.
                     mkdir( LUCENE_INDEX_PATH . 
"/{$arrLanguageData['identifier']}" );
                     // Set language folder permissions.
                     chmod( LUCENE_INDEX_PATH . 
"/{$arrLanguageData['identifier']}", 0777 );
                 
                     // And now we try to create the Lucene index file per 
language folder! :D.
                     $objLuceneIndex = Lucene::create( LUCENE_INDEX_PATH . 
"/{$arrLanguageData['identifier']}" );
                 
                     // Load a new document, a blank document.
                     $objLuceneDocument = new Zend_Search_Lucene_Document();
                 
                     // Set this blank document to the index created.
                     $objLuceneIndex->addDocument( $objLuceneDocument );
                    }
                    catch ( Exception $objError )
                    {
                     throw new Exception( "Can't create Lucene language folder 
for {$arrLanguageData['name']} - ({$objError->getMessage()})" );
                    }
                   }
                  }
                 
                When I execute this at the first time, I always have this 
error: "Can't create index. It's under processing now", ok, I refresh the page 
like two time (for the two languages on my application) and now the page works.
                 
                So, when I try to add data to the both index I always got this 
exception error: "Can't obtain shared index lock".
                 
                Im using something like this:
                 
                 foreach ( $arrSystemLanguages AS $intLanguageId => 
$arrLanguageData )
                  {
                    // Load Lucene lib.
                    $objLucene = new Lucene( LUCENE_INDEX_PATH . 
"/{$arrLanguageData['identifier']}" );
                 
                   // Add fields ...
                 
                   // Save document ...
                  }
                 
                I look into the Zend_Search_Lucene library and that error 
appears when I instantiate the object, I need to "destroy" the object every 
time or something ?
                 
                Thx for any help.

________________________________

                This message contains confidential information and is intended 
only for the individual named. If you are not the named addressee you should 
not disseminate, distribute or copy this e-mail. Please notify the sender 
immediately by e-mail if you have received this e-mail by mistake and delete 
this e-mail from your system. E-mail transmission cannot be guaranteed to be 
secure or error-free as information could be intercepted, corrupted, lost, 
destroyed, arrive late or incomplete, or contain viruses. The sender therefore 
does not accept liability for any errors or omissions in the contents of this 
message, which arise as a result of e-mail transmission. If verification is 
required please request a hard-copy version.
                


________________________________

        This message contains confidential information and is intended only for 
the individual named. If you are not the named addressee you should not 
disseminate, distribute or copy this e-mail. Please notify the sender 
immediately by e-mail if you have received this e-mail by mistake and delete 
this e-mail from your system. E-mail transmission cannot be guaranteed to be 
secure or error-free as information could be intercepted, corrupted, lost, 
destroyed, arrive late or incomplete, or contain viruses. The sender therefore 
does not accept liability for any errors or omissions in the contents of this 
message, which arise as a result of e-mail transmission. If verification is 
required please request a hard-copy version.
        
        
________________________________

        This message contains confidential information and is intended only for 
the individual named. If you are not the named addressee you should not 
disseminate, distribute or copy this e-mail. Please notify the sender 
immediately by e-mail if you have received this e-mail by mistake and delete 
this e-mail from your system. E-mail transmission cannot be guaranteed to be 
secure or error-free as information could be intercepted, corrupted, lost, 
destroyed, arrive late or incomplete, or contain viruses. The sender therefore 
does not accept liability for any errors or omissions in the contents of this 
message, which arise as a result of e-mail transmission. If verification is 
required please request a hard-copy version.
        

Reply via email to