Я работаю над поисковой системой для французского веб-сайта с Zend_Search_Lucene в качестве отдельного компонента. Все хорошо работает на моем локальном веб-сервере (WAMP) в Windows, но поиск с акцентированными словами (например, géographie) не работает на моем производственном сервере (который работает в Unix).
Я сгенерировал индекс в Linux, слова с акцентом правильно проиндексированы.
Смотрите скриншот моего сгенерированного индекса здесь
Я попытался принудительно закодировать параметры анализатора, преобразовать строку запроса с помощью utf8_encode.
Но я все еще не могу заставить его работать.
Я звоню в Lucene с такими параметрами:
Zend_Search_Lucene_Search_QueryParser::setDefaultOperator(Zend_Search_Lucene_Search_QueryParser::B_AND);
Zend_Search_Lucene_Analysis_Analyzer::setDefault(new Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8_CaseInsensitive());
Zend_Search_Lucene_Search_QueryParser::setDefaultEncoding('utf-8');
$index = Zend_Search_Lucene::open($cheminIndexes);
$resultats = $index->find(Zend_Search_Lucene_Search_QueryParser::parse(utf8_encode($_POST['recherche'])));
Этот код возвращает все слова без акцента, но он не возвращает ни одного из моих слов с акцентом, хотя эти слова проиндексированы.
Это разочаровывает, потому что я не понимаю, почему это работает на Windows, я чувствую, что где-то пропущен слой кодирования, но я не могу найти информацию об этом в Google.