Zend framework zend框架中的lucene编码问题

Zend framework zend框架中的lucene编码问题,zend-framework,encoding,indexing,lucene,Zend Framework,Encoding,Indexing,Lucene,我使用lucene搜索索引器 它对英语很有用,但我在我的网站上使用了波斯语,它不能为这种语言编制索引 例如“سلام” 我使用此代码创建文档: public function __construct($class, $key, $title,$contents, $summary, $createdBy, $dateCreated) { $this->addField(Zend_Search_Lucene_Field::Keyword('docRef', "$cla

我使用lucene搜索索引器

它对英语很有用,但我在我的网站上使用了波斯语,它不能为这种语言编制索引

例如“سلام”

我使用此代码创建文档:

public function __construct($class, $key, $title,$contents, $summary, $createdBy, $dateCreated)
    {
        $this->addField(Zend_Search_Lucene_Field::Keyword('docRef', "$class:$key"));
        $this->addField(Zend_Search_Lucene_Field::UnIndexed('class', $class));
        $this->addField(Zend_Search_Lucene_Field::UnIndexed('key', $key));
        $this->addField(Zend_Search_Lucene_Field::Keyword('title', $title ,'utf-8'));
        $this->addField(Zend_Search_Lucene_Field::unStored('contents', $contents , 'UTF-8'));
        $this->addField(Zend_Search_Lucene_Field::text('summary', $summary , 'UTF-8'));
        $this->addField(Zend_Search_Lucene_Field::Keyword('dateCreated', $dateCreated));
    }
添加此(最佳位置引导)

添加此(最佳位置引导)


我遇到了@afsane报告的相同问题,然后我尝试了@ArneRie提供的解决方案。它确实解决了我的问题,但经过一些测试,我意识到第一行是不需要的(至少在我目前的设置中)

因此,对我有效的解决方案是在创建索引之前显式设置默认分析器:

Zend_Search_Lucene_Analysis_Analyzer::setDefault( 新Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8_CaseSensitive()); $index=Zend_Search_Lucene::create('/path/to/my/index');
在打开索引进行查询之前,我不需要显式设置默认分析器。

我遇到了@afsane报告的相同问题,然后我尝试了@ArneRie提供的解决方案。它确实解决了我的问题,但经过一些测试,我意识到第一行是不需要的(至少在我目前的设置中)

因此,对我有效的解决方案是在创建索引之前显式设置默认分析器:

Zend_Search_Lucene_Analysis_Analyzer::setDefault( 新Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8_CaseSensitive()); $index=Zend_Search_Lucene::create('/path/to/my/index'); 不过,在打开索引进行查询之前,我不需要显式设置默认分析器

    Zend_Search_Lucene_Search_QueryParser::setDefaultEncoding('utf-8');
    Zend_Search_Lucene_Analysis_Analyzer::setDefault(
        new Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8_CaseInsensitive ()
    );