Hi,
sorry for re-posting - I am new to this list... I am switching from lucene.net 2.0.0.4 to lucene.net 2.9.1.1 and I have problems in a very early state. With version 2.0.0.4 it works fine! With version 2.9.1.1 on Microsoft it works fine With version 2.9.1.1 on linux I always get the following errors: ################################ System.TypeInitializationException: An exception was thrown by the type initializer for Lucene.Net.Store.FSDirectory ---> System.TypeInitializationException: An exception was thrown by the type initializer for Lucene.Net.Util.Constants ---> System.NullReferenceException: Object reference not set to an instance of an object at Lucene.Net.Util.Constants..cctor () [0x00000] --- End of inner exception stack trace --- at Lucene.Net.Store.FSDirectory..cctor () [0x00000] --- End of inner exception stack trace --- at ConsoleApplication1.Module1.Main () [0x00000] ################################ System.TypeInitializationException: An exception was thrown by the type initializer for Lucene.Net.Index.IndexWriter ---> System.TypeInitializationException: An exception was thrown by the type initializer for Lucene.Net.Index.DocumentsWriter ---> System.TypeInitializationException: An exception was thrown by the type initializer for Lucene.Net.Util.Constants ---> System.NullReferenceException: Object reference not set to an instance of an object at Lucene.Net.Util.Constants..cctor () [0x00000] --- End of inner exception stack trace --- at Lucene.Net.Store.FSDirectory..cctor () [0x00000] --- End of inner exception stack trace --- at Lucene.Net.Index.IndexWriter..cctor () [0x00000] --- End of inner exception stack trace --- at ConsoleApplication1.Module1.Main () [0x00000] >From debugging I found the reason for the errors: dir = Lucene.Net.Store.FSDirectory.GetDirectory(indexFileLocation, True) and indexWriter = New Lucene.Net.Index.IndexWriter(dirR, analyzer, True) but I do not have any idea what's happen here.... I have attached the source of my test application! Thanks for help & Regards, Johannes
Module Module1 Private MSFlag As Boolean = IIf(System.Environment.OSVersion.VersionString.ToLower Like "*microsoft*", True, False) Private DSC As Char = System.IO.Path.DirectorySeparatorChar Private NL As String = Environment.NewLine Private indexFileLocation As String = "" Sub Main() Try If MSFlag Then indexFileLocation = "c:\index\" Else indexFileLocation = "/tmp/LuceneIndexTest/" End If If Not System.IO.Directory.Exists(indexFileLocation) Then System.IO.Directory.CreateDirectory(indexFileLocation) End If Dim doc As Lucene.Net.Documents.Document Dim dir As Lucene.Net.Store.FSDirectory Try dir = Lucene.Net.Store.FSDirectory.GetDirectory(indexFileLocation, True) Catch ex As Exception Console.WriteLine("################################") Console.WriteLine(ex) dir = Nothing End Try Dim dirR As Lucene.Net.Store.RAMDirectory = New Lucene.Net.Store.RAMDirectory() Dim analyzer As Lucene.Net.Analysis.Analyzer = New Lucene.Net.Analysis.Standard.StandardAnalyzer Dim indexWriter As Lucene.Net.Index.IndexWriter Try indexWriter = New Lucene.Net.Index.IndexWriter(dirR, analyzer, True) Catch ex As Exception Console.WriteLine("################################") Console.WriteLine(ex) indexWriter = Nothing End Try 'Stop if error: If IsNothing(dir) Then Exit Sub If IsNothing(indexWriter) Then Exit Sub 'Create index: Dim i As Integer = 0 For i = 1 To 10 doc = New Lucene.Net.Documents.Document() Dim fldContent As Lucene.Net.Documents.Field fldContent = New Lucene.Net.Documents.Field("date", (i * 250).ToString, Lucene.Net.Documents.Field.Store.YES, Lucene.Net.Documents.Field.Index.UN_TOKENIZED, Lucene.Net.Documents.Field.TermVector.NO) doc.Add(fldContent) fldContent = New Lucene.Net.Documents.Field("cc", "cc#" & i.ToString & "@drachenfels.de", Lucene.Net.Documents.Field.Store.YES, Lucene.Net.Documents.Field.Index.UN_TOKENIZED, Lucene.Net.Documents.Field.TermVector.NO) doc.Add(fldContent) fldContent = New Lucene.Net.Documents.Field("bcc", "bcc#" & i.ToString & "@drachenfels.de", Lucene.Net.Documents.Field.Store.YES, Lucene.Net.Documents.Field.Index.UN_TOKENIZED, Lucene.Net.Documents.Field.TermVector.NO) doc.Add(fldContent) indexWriter.AddDocument(doc) Debug.Print(i) Next indexWriter.Optimize() indexWriter.Close() 'Add dirR to directory: Dim IW As Lucene.Net.Index.IndexWriter = New Lucene.Net.Index.IndexWriter(dir, analyzer, True) IW.SetWriteLockTimeout(1000) IW.AddIndexesNoOptimize(New Lucene.Net.Store.Directory() {dirR}) IW.Optimize() IW.Close() 'Suchen: dir = Lucene.Net.Store.FSDirectory.GetDirectory(indexFileLocation, False) Dim searcher As Lucene.Net.Search.IndexSearcher = New Lucene.Net.Search.IndexSearcher(dir) 'Mehrere Felder durchsuchen: Dim b As Lucene.Net.Search.BooleanQuery = New Lucene.Net.Search.BooleanQuery Dim tq As Lucene.Net.Search.WildcardQuery = New Lucene.Net.Search.WildcardQuery(New Lucene.Net.Index.Term("to", "*")) b.Add(tq, Lucene.Net.Search.BooleanClause.Occur.SHOULD) tq = New Lucene.Net.Search.WildcardQuery(New Lucene.Net.Index.Term("cc", "*")) b.Add(tq, Lucene.Net.Search.BooleanClause.Occur.SHOULD) tq = New Lucene.Net.Search.WildcardQuery(New Lucene.Net.Index.Term("bcc", "*")) b.Add(tq, Lucene.Net.Search.BooleanClause.Occur.SHOULD) b.SetMaxClauseCount(Integer.MaxValue) Dim hits As Lucene.Net.Search.Hits = searcher.Search(b) 'For i = 0 To hits.Length() - 1 ' doc = hits.Doc(i) 'Next Console.WriteLine(hits.Length) searcher.Close() Catch ex As Exception Console.WriteLine("################################") Console.WriteLine(ex) Console.WriteLine("################################") End Try End Sub End Module