2012-02-23 9 views
13

tahsis etmeye çalışır. Aramak zorunda olduğum yaklaşık 250 kb statik HTML'ye sahibim. Bunun için Zend Lucene'i kullanacağımı düşündüm. dizinleri oluşturma birkaç saniye sürer ve tüm güzel ve arama yaparsam dışında iyidir "hakkında" bu ile biter:Zend_Search_Lucene, 3503812093817007931 bytes'i

Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 
3503812093817007931 bytes) in /var/www/u1938159/data/www/----- 
/protected/vendors/Zend/Search/Lucene/Storage/File/Filesystem.php on line 163 

başka kelimeler bunun için ok gibi görünüyor. Ayrıca, dosyalar bazı yabancı metinleri içerir. Bu yüzden küçük harfe duyarlı Analyzer kullanmak zorunda yüklenmesi için bir sonsuzluk alır ve bununla çökmesini hiç çalışmıyor Hangi durumda

Zend_Search_Lucene_Analysis_Analyzer::setDefault(
    new Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8_CaseInsensitive() 
); 
Zend_Search_Lucene_Search_QueryParser::setDefaultEncoding('utf-8'); 

:

Error occured while file reading. 

mu Lucene ciddi sorunların var yoksa ben mi kendime bir şey mi dağıttı?

+0

Orada kaç html dosyası var? – raina77ow

cevap

2

Lucene'de bu sorunlar yok, ancak Zend_Search_Lucene'da var. Ne kadar arama yapmanız gerektiğinden emin değilim ve eğer bu bir zaman meselesiyse, Apache Solr veya ElasticSearch'a bakarım.

Sorunuzu bazı verilerle genişletir misiniz?

Ayrıca bir çift barındırılan hizmetler vardır, daha fazla işaretçiye ihtiyacınız varsa bildirin.

-1

Zend Lucene ile ilgili belirli bir sorunun nerede olduğunu bilmiyorum, fakat göreceli olarak küçük bir HTML dosyasında arama yapmaya çalışıyorsanız, grep'i kullanmayı deneyebilirsiniz. Örneğin, komut satırında: hakkında sözcüğü içeren satırları bulmak için:

cat file.html | grep -i about.

veya

cat file.html | grep -i -o -P '.{30}About.{30}'

hakkında kelimenin her iki tarafında sadece 30 karakter istiyorum.

+0

Yanıt reddedildi çünkü soruyla alakasız. Aramak için alternatif yollar istemiyordu - belirli bir hatayı nasıl çözeceğini soruyordu. – NickG