Zend_Search_Lucene と、ドイツ語の ÄÖÜ などの英語以外の文字の問題がいくつかあります。私のデータベースは UTF-8 形式の文字列を返すので、すべてうまくいくと思いました。
深刻なエンコーディングの問題が発生した後、Web を検索したところ、次のコード行でほとんどの人の問題が解決されることがわかりました。
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を間違って使用していますか?それともこれはバグですか?