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