EDIT:
Решено с помощью хака на данный момент. Добавлено в строке 473:
if (isset($this->_termsFreqs[$termId][$docId])) {
}
Это происходит только тогда, когда я ищу несколько слов, например ::10000
+word1 +word2 + word3
Я получаю эту огромную ошибку:
Notice: Undefined offset: 2 in C:\wamp\www\project\library\Zend\Search\Lucene\Search\Query\MultiTerm.php on line 473
Notice: Undefined offset: 2 in C:\wamp\www\project\library\Zend\Search\Lucene\Search\Query\MultiTerm.php on line 473
Notice: Undefined offset: 4 in C:\wamp\www\project\library\Zend\Search\Lucene\Search\Query\MultiTerm.php on line 473
Notice: Undefined offset: 4 in C:\wamp\www\project\library\Zend\Search\Lucene\Search\Query\MultiTerm.php on line 473
Notice: Undefined offset: 6 in C:\wamp\www\project\library\Zend\Search\Lucene\Search\Query\MultiTerm.php on line 473
Notice: Undefined offset: 6 in C:\wamp\www\project\library\Zend\Search\Lucene\Search\Query\MultiTerm.php on line 473
Notice: Undefined offset: 1 in C:\wamp\www\project\library\Zend\Search\Lucene\Search\Query\MultiTerm.php on line 473
Notice: Undefined offset: 1 in C:\wamp\www\project\library\Zend\Search\Lucene\Search\Query\MultiTerm.php on line 473
Notice: Undefined offset: 9 in C:\wamp\www\project\library\Zend\Search\Lucene\Search\Query\MultiTerm.php on line 473
Notice: Undefined offset: 9 in C:\wamp\www\project\library\Zend\Search\Lucene\Search\Query\MultiTerm.php on line 473
Забавно, что возвращаемый набор результатов является правильным, поэтому в производственном процессе я мог бы просто отключить отчеты об ошибках, и это сработало бы как чудо, но я не хочу этого делать.
Подобная проблема задокументирована здесь: http://framework.zend.com/issues/browse/ZF-5545
И, видимо, решения нет.
Я также пытался использовать анализатор текста, совместимый с UTF-8 (хотя в индексе у меня только 1 латинский символ):
Zend_Search_Lucene_Analysis_Analyzer::setDefault(new Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8());