У меня проблемы с Zend_Search_Lucene и неанглийскими символами, такими как немецкий ÄÖÜ.Моя база данных возвращает строки в формате UTF-8, поэтому я подумал, что все будет работать нормально.
После серьезных проблем с кодированием я искал в Интернете и обнаружил, что следующие строки кода решили проблемы для большинства людей:
Zend_Search_Lucene_Search_QueryParser::setDefaultEncoding('utf-8');
Zend_Search_Lucene_Analysis_Analyzer::setDefault(new Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8_CaseInsensitive ()
На самом деле, это не решило мою проблему.Сегодня я нашел решение, которое работает: (не utf8_decode
)
$doc->addField(Zend_Search_Lucene_Field::keyword('division', utf8_decode($contact->division)), 'utf-8');
Ну, это работает отлично, но, честно говоря, это выглядит довольно странно.Почему я должен конвертировать строки назад и вперед?Может я неправильно использую Lucene?Или это ошибка?