Я столкнулся с проблемой, связанной с использованием Lucene.net в одном из моих проектов, где я использую функцию SimpleFacetedSearch, чтобы выполнить фасетный поиск.
Я получаю исключение
Число граней превышено 2048
У меня есть 3 столбца, с которыми я сталкиваюсь, как только добавляю другой фасет, я получаю исключение.
Если я удаляю все остальныефасеты новый фасет работает.
Детализация до источника SimpleFacetedSearch Я вижу внутри конструктора SimpleFacetedSearch, что проверка количества фасетов не превышает MAX_FACETS, который является константой, равной 2048.
foreach (string field in groupByFields)
{
...
num *= fieldValuesBitSets1.FieldValueBitSetPair.Count;
if (num > SimpleFacetedSearch.MAX_FACETS)
throw new Exception("Facet count exceeded " + (object) SimpleFacetedSearch.MAX_FACETS);
fieldValuesBitSets.Add(fieldValuesBitSets1);
...
}
Однако, так как он общедоступен, я могу установить его следующим образом.
SimpleFacetedSearch.MAX_FACETS = int.MaxValue;
Кто-нибудь знает, почему он установлен на 2048 и если есть проблемы с его изменением?Мне не удалось найти какую-либо документацию по нему.