Как улучшить производительность PrefixQuery с одним символом?

У меня есть RAMDirectory с 1,5 миллионами документов, и япоиск с использованием PrefixQuery для одного поля. Если длина искомого текста составляет 3 или более символов, поиск выполняется очень быстро, менее 20 миллисекунд. Но если длина искомого текста меньше 3 символов, поиск может занять даже целую 1 секунду.

С тех пор'Функция автозаполнения и пользователь начинают с одного символа (и есть результаты, которые действительно имеют длину в 1 символ), я не могу ограничить длину текста поиска.

Код в значительной степени:

var symbolCodeTopDocs = searcher.Search(new PrefixQuery(new Term("SymbolCode", searchText), 10);

SymbolCode является полем NOT_ANALYZED. Версия Lucene.NET - 3.0.3.

Пример упрощен, и мне, возможно, придется использовать BooleanQuery для применения дополнительных ограничений в реальном сценарии.

Как я могу улучшить производительность в этом конкретном случае? Эти запросы с одним или двумя символами приводят к остановке сервера.

Ответы на вопрос(1)

Ваш ответ на вопрос