这里或任何地方都找不到解决办法,所以我要问另一个关于Zend Lucene的问题。每个人都听说过Lucene的一些编码。我应该在哪里切换这个编码?
当我使用搜索(PL语言)时
oprĂłcz wyst…[医]罗什氏菌。米斯特里佐维olimpijscy z Londynu粉状…
这个Ăł应该是波兰语的"ó“,…(乌克劳特?)是"ą“等等。当然,它对英语很有用。
同样,searchController.php (操作创建+搜索):
public function actionCreate()
{
$_indexFiles = 'runtime.search';
$index = Zend_Search_Lucene::create($_indexFiles);
$index = new Zend_Search_Lucene(Yii::getPathOfAlias('application.' . $this->_indexFiles), true);
$posts = News::model()->with('comment')->findAll();
foreach($posts as $news){
$doc = new Zend_Search_Lucene_Document();
$doc->addField(Zend_Search_Lucene_Field::Text('title',CHtml::encode($news->name), 'utf-8'));
$doc->addField(Zend_Search_Lucene_Field::Text('link',CHtml::encode($news->url), 'utf-8'));
$doc->addField(Zend_Search_Lucene_Field::Text('content',CHtml::encode($news->description), ' utf-8 '));
$index->addDocument($doc);
}
setlocale(LC_CTYPE, 'pl_PL.utf-8');
$index->commit();
echo 'Lucene index created';
}
public function actionSearch()
{
Zend_Search_Lucene_Search_QueryParser::setDefaultEncoding('utf-8');
Zend_Search_Lucene_Analysis_Analyzer::setDefault(new Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8_CaseInsensitive ());
$this->layout='column2';
if (($term = Yii::app()->getRequest()->getParam('q', null)) !== null) {
$index = new Zend_Search_Lucene(Yii::getPathOfAlias('application.' . $this->_indexFiles));
$results = $index->find($term);
$query = Zend_Search_Lucene_Search_QueryParser::parse($term);
$this->render('search', compact('results', 'term', 'query'));
}
}
发布于 2013-01-16 17:09:41
欢迎来到Zend_Lucene,当你厌倦它时,你可以开始使用像索尔或狮身人面像这样的本地搜索引擎。
“从别人的错误中吸取教训。你不能活得够久,让他们自己都犯错误。”
https://stackoverflow.com/questions/14356480
复制相似问题