lucene klasör kilitleme

1 Cevap php

Ben zerdüştlerin lucene uygulanması etrafında sarıcı yazma ve veritabanındaki tüm alanları okur ve geçici bir klasöre dizin dosyasını yeniden oluşturur bir işlevi rebuildIndex() eklemek istedim duyuyorum. Işlemi bittiğinde, ben yenisi ile özgün klasörü değiştirmek istiyor. Içeriğini değiştirirken ben nasıl orijinal lucene klasör kilitlemek? I Zend's API docs şey bulamadım, ama ben bir yerde okudum Lucene dosyalarla çalışmalarını kilitleme. Vardı Hangi dosya / klasörleri ihtiyacım var?

1 Cevap

Lucene kullanımı endeksi tutarlılığı korumak için dahili kilitleme, böylece kodu kullanamazsınız. Ben şu stratejiyi kullanarak öneririm:

  1. Indeksi, örneğin 2 farklı sürümleri için dizinleri içeren dizin 'dizin' oluşturun 'Index1' ve 'endeksi2' ve aramalar için kullanılması gereken dizine bir sembolik 'geçerli'.
  2. Dizini güncelleştirme zaman dizini yeniden oluşturmak, inaktif indeks dizindeki dosyaları açılır ve o bitince yeni dizine dizine 'geçerli' set
  3. Eski dizine dosyaları tamamlamak ve açılan eski dosyalar için dizin arama sorguları için 1 dakika bekleyin.