Lucene.Net.Search.BooleanQuery+TooManyClauses: системная ошибка

Я пытаюсь выполнить поиск по приведенным ниже параметрам, и мне интересно, почему некоторые вызывают это исключение.

Только несколько параметров не работают. Все остальные работают.

  • ?q=220v+0+ph => Не работает
  • ?q=220v+1+ph => Не работает
  • ?q=220v+2+ph => Не работает
  • ?q=220v+3+ph => Не работает
  • ?q=220v+4+ph => Работа
  • ?q=220v+5+ph => Работа
  • ?q=220v+6+ph => Работа
  • ?q=220v+7+ph => Работа
  • ?q=220v+8+ph => Работа
  • ?q=220v+9+ph => Работа

Я проверяю центр персонажа. Это не работает только в случаях 0, 1, 2 и 3.

Запрос: {+(title:480v* content:480v title:3* content:3 title:ph* content:ph)

1 ответ

Один или несколько подстановочных запросов генерируют слишком много совпадений терминов. Запросы с подстановочными знаками переписываются путем перечисления всех соответствующих терминов и создания набора примитивных запросов, соответствующих им, которые объединяются в BooleanQuery,

Например, запрос title:foo*, может быть переписан в title:foobar title:food title:foolish title:footpadв индексе, содержащем эти термины.

По умолчанию BooleanQuery позволяет максимум 1024 предложения. Если у вас есть более 1024 различных терминов в индексе соответствия title:0*Например, это, вероятно, ваша проблема.

Другие вопросы по тегам