(Yabancı anahtarlar ile) Zend Lucene ve ilgili modelleri ile Symfony

0 Cevap php

Benim Zend Lucene uygulanmasında önemli bir dezavantajı fark Eh ben Symfony 1.4 ve Doktrin istimal bir uygulama geliştiriyorum edildi.

Ben birkaç diğer modelleri (konular, türler, diller, yazarlar, vb) ile (yabancı anahtar ilişkileri aracılığıyla) ilgili bir modeli olarak adlandırılan yayın var ve endeks yeni bir belge eklerken (onlar isimler konum alıyorum nedense ben bu ilgili modellerinden biri Zend lucene adını değiştirmeye karar verirseniz ben belirli bir konu, tür, dil, yazar, vb yayınlar için arama böylece) Jobeet öğretici şekilde kullanarak .. sorun dizin güncellenen almazsınız.

Ben ile gelebilir sadece iki çözüm vardı:

  1. Re-index tüm yayınları düzenli olarak (ancak bu çözüm endeksi gerçek zamanlı olarak güncellenir izin vermez) ilgili modeller yapılan değişiklikler endeksi güncellenen alır garanti

  2. Get all the publications that are related with a given model and re-index them after it gets updated (using the save(), postSave(), postUpdate() or whatever you can come up with on Doctrine). --> This solution seemed great... It will only rebuild the index for the publications that are linked to the updated model right? Well, if you have something like a thousand (1000) publications linked to it will take a few minutes to update (yeah I tested it) and on a user form it will timeout because it takes over 30 seconds (and even if it don't it would be bad to have a user looking at the screen for a few minutes awaiting for the page to finish to load).

Başka bir çözüm varsa Peki ne bilmek istiyorum? Bütün Pahe asılı olmadan ilgili bir model üzerinde bir değişime dayalı anında bir dizini güncelleştirmek için bir yolu var mı? Belki arka plan ya da bir şey üzerinde çalıştırmak için görev koyarak? Böyle bir yolu var mı?

Lucene ile bunu yapmak için hiçbir yolu varsa Zend lucene böyle bir dezavantajı var olmadığını kullanmadan (InnoDB tablolar ile) MySQL ile tam metin araması kullanmak için herhangi bir yolu var mı? Böyle bir araç varsa ben glady farklı bir kütüphane karşılamak için kodumu refactor istiyorum.

Bana bu konuda yardım eder misiniz? Şimdiden teşekkürler!

0 Cevap