2012-02-23 4 views
13

私は検索しなければならない約250kbの静的HTMLを持っています。私はそれにZend Luceneを使うと思った。インデックスを作成すると、数秒を取り、すべてが、私はそれがこれで終わる「約」を検索する場合を除いていいと良いです:Zend_Search_Luceneは3503812093817007931バイトを割り当てようとしています

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 

他の言葉はそれのためにOKであるように見えます。さらに、ファイルにはいくつかの外国のテキストが含まれています。だから私はそれをロードするために永遠を取り、これにクラッシュすべてで動作しない場合は小文字を区別しないアナライザ

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. 

んLuceneの深刻な問題を持っているか、私がやりました何かを混乱させる?

+0

いくつのhtmlファイルがありますか? – raina77ow

答えて

2

Luceneにはこれらの問題はありませんが、Zend_Search_Luceneがあります。私はあなたが検索しなければならないかどうか、これが一度だけであるかどうかはわかりませんが、Apache SolrまたはElasticSearchを調べます。

いくつかのデータで質問を拡張できますか?

また、いくつかのホストされたサービスもあります。ポインタが必要な場合はお知らせください。

-1

Zend Luceneの具体的な問題はここではわかりませんが、比較的小さなHTMLファイルを検索しようとしている場合は、grepだけを試してみてください。たとえば、コマンドラインで:aboutという単語を含む行を検索するには、

cat file.html | grep -i aboutを入力します。

または

cat file.html | grep -i -o -P '.{30}About.{30}'あなたは程度の単語のいずれかの側でちょうど30文字にしたい場合。

+0

答えが質問に無関係であるため、下降しました。彼は検索のための別の方法を求めていませんでした。彼は特定のエラーを解決する方法を尋ねていました。 – NickG

関連する問題