Mój indekser, używając Lucene, wydaje się zawieszać podczas operacji indeksowania po zapisaniu pliku indeksu o rozmiarze około 16 GB.Lucene.net - Awarie podczas indeksowania
Zapis śladu stosu zapisany na konsoli jest powtarzany trzy razy z przyczyn, których nie znam. Dla zwięzłości dostarczyłem tylko tę pojedynczą część, która się powtarza. Oto ślad stosu jako zapisywane na conolse przez Lucene:
Lucene.Net.Index.MergePolicy+MergeException: Exception of type 'Lucene.Net.Index.MergePolicy+MergeException' was thrown. --->
System.IO.FileNotFoundException: Could not find file 'PATH_TO_MY_INDEX_DIRECTORY\_xx.cfs'.
File name: 'PATH_TO_MY_INDEX_DIRECTORY\_xx.cfs'
at Lucene.Net.Index.IndexWriter.HandleMergeException(Exception t, OneMerge merge)
at Lucene.Net.Index.IndexWriter.Merge(OneMerge merge)
at Lucene.Net.Index.ConcurrentMergeScheduler.MergeThread.Run()
--- End of inner exception stack trace ---
at Lucene.Net.Index.ConcurrentMergeScheduler.HandleMergeException(Exception exc)
at Lucene.Net.Index.ConcurrentMergeScheduler.MergeThread.Run()
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading.ThreadHelper.ThreadStart()
Kiedy otworzyć wygenerowany log z wersji Java Łukasza indeks jest usunięty (prawdopodobnie dlatego, że jest uszkodzony, „write.lock” plik pozostaje, na przykład), choć może to być błąd lub błędna konfiguracja Luke'a.
Utworzenie tego indeksu trwa około 36 godzin i nie chcę go ponownie robić po raz trzeci (to nie pierwszy raz, kiedy to się stało).
Nie mam pojęcia, co to powoduje. Co mogę zrobić?
Używam Lucene.net 2.9.2 ponieważ jest to ostatnia wersja, która została zbudowana dla .NET 3.5.
indeksujesz na dysku lokalnym? –
Tak, jest to dysk lokalny. Nie ma innych procesów korzystających z plików indeksu, a mój program indeksujący ma pojedynczą instancję IndexWriter. – Dai
możliwą przyczyną tego w Lucne Java jest to, że zabraknie uchwytów plików, nie jestem pewien, czy ma to zastosowanie do Lucene.net. –