2010-04-21 4 views
1

Облицовка медленной производительности поиска с использованием Lucene.Net (+ NHibernate.Search, но это не имеет значения).Slow Lucene.Net search performance

Люк Обзор инструментов:

  • Количество полей: 33
  • Количество документов: 5607
  • Количество терминов: 101377
  • Имеет удалений?/Оптимизировано ?: Да (97478)/Нет

Каталог указателей ~ 200Mb большой.

запросов (с использованием org.apache.lucene.analysis.SimpleAnalyzer)

Title:lapsa~0.5 Abstract:lapsa~0.5 Content:lapsa~0.5 Location:lapsa~0.5 Author:lapsa~0.5

занимает ~ 60000ms в среднем.


Я подозреваю, что у меня что-то не хватает. Какие-нибудь идеи, что не так? Не может быть, что это нормально.


Попытка «проверить» и «исправить» их. Пришлось пометить Don't open IndexReader (when opening corrupted index), в противном случае Check index tool не хочет появляться.

Результаты проверки:

BAD: missingSegments

диагностический выход:

ERROR: could not read any segments file in directory java.io.FileNotFoundException: no segments* file found in [email protected]:\Temp\Index: files: at org.apache.lucene.index.SegmentInfos$FindSegmentsFile.run(SegmentInfos.java:655) at org.apache.lucene.index.SegmentInfos$FindSegmentsFile.run(SegmentInfos.java:538) at org.apache.lucene.index.SegmentInfos.read(SegmentInfos.java:306) at org.apache.lucene.index.CheckIndex.checkIndex(CheckIndex.java:340) at org.apache.lucene.index.CheckIndex.checkIndex(CheckIndex.java:319) at org.getopt.luke.Luke$6.run(Unknown Source)

Пробовал нажимать Fix Index. Получено это:

ERROR during Fix Index: java.lang.NullPointerException at org.apache.lucene.index.CheckIndex.fixIndex(CheckIndex.java:781) at org.getopt.luke.Luke$7.run(Unknown Source)

+0

Вы пытались оптимизировать? Похоже, у вас есть * много * ожидающих удаления ... –

+0

@codeka, когда я нажимаю 'luke-> tools-> optimize index', он говорит' Failed: индекс отсутствует или индекс закрыт. «Повторно открыть». И повторное открытие не помогает. –

ответ

2

Звучит так, как будто у вас есть поврежденный индекс. Есть ли любые файлы в папке D: \ Temp \ Index? Я предполагаю, что должно быть или поиск не будет работать вообще ... Какую версию Lucene.Net вы используете? Ранние версии, используемые для коррумпирования индекса для меня при падении шляпы, но более поздние версии кажутся намного лучше в этом отношении.

Если вы не можете понять это, вам просто нужно будет перестроить индекс с нуля.

0

В Luke перейдите в меню «Сервис» и выберите инструмент «Индекс». Посмотрите, поврежден ли ваш индекс или есть другие проблемы.

+0

В нем говорится, что отсутствуют сегменты. Wtf? –

+0

Удалось ли вам исправить это? –

0

This один помог мне. Включена автоматическая оптимизация.