2012-01-16 8 views
1

私はインデックスを作成しており、その情報をユーザーに表示するために必要なインデックスを圧縮して格納する必要があります。 私は、現在のエラーました:「ICSharpCode.SharpZipLib.dllをロードできません」、Lucene.netのdependecyあるので、私はwriter.AddDocument(doc);Lucene.net、Filed.Store.COMPRESSでドキュメントのインデックスを作成中にエラーが発生しました

のDLLはNuGetからのものか、と私はSharpZipLibをしました。

スニペット:luceneのは、それがあること、プロジェクト

ノートの出力にコピーされていることを確認し、ビルド・パスにSharpZipLib DLLを見つけることができないことを意味し、事前

答えて

0

System.IO.DirectoryInfo directoryInfo = new System.IO.DirectoryInfo(path); 
Directory directory = FSDirectory.Open(directoryInfo); 
Analyzer analyzer = new SnowballAnalyzer("Portuguese"); 
bool isNew = !IndexReader.IndexExists(directory); 
IndexWriter writer = new IndexWriter(directory, analyzer, isNew, Lucene.Net.Index.IndexWriter.MaxFieldLength.UNLIMITED); 
//Create document 
Document doc = new Document(); 
NumericField numericField = new NumericField("id", Field.Store.YES, false); 
numericField.SetIntValue(id); 
doc.Add(numericField); 
Field field = new Field("title", title, Field.Store.COMPRESS, Field.Index.ANALYZED); 
field.SetBoost(7); 
doc.Add(field); 
field = new Field("description", tescription, Field.Store.COMPRESS, Field.Index.ANALYZED); 
doc.Add(field); 
writer.AddDocument(doc); 
writer.Optimize(); 
//Close the writer 
writer.Commit(); 
writer.Close(); 
} 
catch (Exception ex) 
{ throw ex; } 

感謝圧縮されたフィールドは最近のバージョンのLuceneでは非難されていますが、私はそれらを使用することをお勧めしません。代わりにCompressionToolsクラスを使用するか、独自の圧縮メソッドを展開する必要があります。

+0

しかし私はプロジェクトでSharpZipLibを参照しました。 チップをありがとう、私はより多くの情報を楽しみにしています。 – joaoasrosa

+0

DLLの名前がICSharpCode.SharpZipLib.dllで、VisualStudioプロジェクト内の参照のコピーローカルプロパティがtrueに設定されていることを確認してください。 –

+0

これらの要件はすべて設定されており、追加されています... :( – joaoasrosa