为什么分析器在Zend.Search.Lucene中全局定义?

时间:2009-10-16 12:59:21

标签: php zend-framework lucene

我刚刚注意到Zend lucene实现有一个默认的分析器,可以使用Zend_Search_Lucene_Analysis_Analyzer::setDefault()进行修改,但是在执行查询时我找不到覆盖默认值的方法。如果我正在处理多个索引或者我缺少一个函数,是否真的需要重置默认分析器?

2 个答案:

答案 0 :(得分:2)

在原始的Lucene Java API中,QueryParser采用analyzer参数。我不确定为什么他们决定在Zend Framework中使用全局变量,但显然设置全局分析器是唯一的方法。

答案 1 :(得分:0)

我使用TextNum分析器,因为默认值(Zend_Search_Lucene_Analysis_Analyzer_Common_TextNum_CaseInsensitive)不允许按整数搜索。

要覆盖默认值,我运行:

Zend_Search_Lucene_Analysis_Analyzer::setDefault(new Zend_Search_Lucene_Analysis_Analyzer_Common_TextNum());