Używam lucene z zenda pod symfony w sposób przedstawiony w tutorialu jobeet - dzień 17.
Niestety przy zapytaniach zawierających polskie znaki lucene się wykrzaczało. Na sieci jest kilka rozwiązań tego problemu - poczynając od zmian w kodzie lucene (coś u mnie nie działało) przez odpowiednią konfigurację lucene z poziomu zenda (nie wiedziałem jak to zintegrować z symfony...). Niestety żadne ze znalezionych rozwiązań u mnie nie działało - dlatego przyjrzałem się temu jak jest konfigurowane lucene z poziomu propelowskiego pluginu sfLucenePlugin i tam znalazłem najlepsze działające rozwiązanie.
do funkcji rejestrującej zend'a
{ if (self::$zendLoaded) { return; } require_once sfConfig::get('sf_lib_dir').'/vendor/Zend/Loader/Autoloader.php'; Zend_Loader_Autoloader::getInstance(); self::$zendLoaded = true; }
trzeba dodać Zend_Search_Lucene_Search_QueryParser::setDefaultEncoding('UTF-8');
{ if (self::$zendLoaded) { return; } require_once sfConfig::get('sf_lib_dir').'/vendor/Zend/Loader/Autoloader.php'; Zend_Loader_Autoloader::getInstance(); Zend_Search_Lucene_Search_QueryParser::setDefaultEncoding('UTF-8'); self::$zendLoaded = true; }
Mam nadzieję, że to rozwiązanie zaoszczędzi komuś trochę grzebania i szukania - przynajmniej mi bardziej się podoba niż czary mary z ustawianiem na sztywno kodowań w lucene
