Я работаю над API поиска в магазине, используя Lucene.
Мне нужно показать результаты поиска магазина для каждого города, комбинации штатов с частотой в скобках .... например:
Los Angles,CA (450)
Atlanta,GA (212)
Boston, MA (78)
.
.
.
На данный момент мои результаты поиска возвращают в среднем около 7000 документов Lucene, если пользователь говорит «Покажите мне все магазины».
В этом случае я получаю около 800 уникальных записей по городам и штатам, как показано выше.
Я переопределяю метод Collect
класса HitCollector
и получаю векторы следующим образом:
var vectors = _reader.GetTermFreqVectors(doc);
Затем я перебираю эту коллекцию и вычисляю частоту для каждой уникальной комбинации «Город, штат».
Но это оказывается очень-очень медленным по производительности ... Есть ли лучший способ группировки результатов поиска и расчета частоты в Lucene?
Фрагмент кода будет очень полезен
Также, пожалуйста, предложите, если я могу оптимизировать свой код поиска Lucene, используя любые другие методы / советы ....
Спасибо за чтение!