2012-02-23 41 views
13

Tôi có khoảng 250kb HTML tĩnh mà tôi phải tìm kiếm thông qua. Tôi nghĩ rằng tôi sẽ sử dụng Zend Lucene cho điều đó. Việc tạo chỉ mục mất một vài giây và tất cả đều tốt đẹp và tốt trừ khi tôi tìm kiếm "về" nó kết thúc với điều này:Zend_Search_Lucene cố gắng phân bổ 3503812093817007931 byte

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 

Các từ khác có vẻ ổn. Hơn nữa, các tập tin có chứa một số văn bản nước ngoài. Vì vậy, tôi phải sử dụng trường hợp không nhạy cảm phân tích

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

Trong trường hợp này phải mất một cõi vĩnh hằng để tải và không làm việc ở tất cả đâm với điều này:

Error occured while file reading. 

Liệu Lucene có những vấn đề nghiêm trọng hoặc đã làm tôi messs một cái gì đó lên bản thân mình?

+0

Có bao nhiêu tệp html? – raina77ow

Trả lời

2

Lucene không có những vấn đề này, nhưng Zend_Search_Lucene có. Tôi không chắc chắn bạn phải tìm kiếm bao nhiêu và nếu đây là điều một lần, nhưng tôi sẽ xem xét Apache Solr hoặc ElasticSearch.

Bạn có thể mở rộng câu hỏi của mình bằng một số dữ liệu không?

Ngoài ra còn có một vài dịch vụ được lưu trữ, hãy cho tôi biết nếu bạn cần thêm con trỏ.

-1

Tôi không biết vấn đề cụ thể với Zend Lucene là gì, nhưng nếu bạn đang cố gắng tìm kiếm thông qua một tệp HTML tương đối nhỏ, bạn có thể thử dùng grep. Ví dụ: trên dòng lệnh:

cat file.html | grep -i about để tìm các dòng chứa từ đó.

hoặc

cat file.html | grep -i -o -P '.{30}About.{30}' nếu bạn muốn chỉ 30 ký tự ở hai bên của từ về.

+0

Bị bỏ phiếu vì câu trả lời không liên quan đến câu hỏi. Anh ấy đã không yêu cầu những cách khác để tìm kiếm - anh ấy đã hỏi làm thế nào để giải quyết một lỗi cụ thể. – NickG

Các vấn đề liên quan