我正在使用Zend Framework Lucene编写搜索引擎。我正在尝试进行模糊查询: “姓名:sxample〜” 当我把它放入卢克时 - 它发现了14个结果(全部带有“样本”字样)。当我使用我的PHP代码 -
$query = 'name:sxample~';
$query = Zend_Search_Lucene_Search_QueryParser::parse($query,'utf-8');
try {
$hits = $index->find($query);
}
catch (Zend_Search_Lucene_Exception $ex) {
$hits = array();
}
- 命中数组为空。我猜索引是好的,而Luke和ZF使用相同的文件。 我正在使用Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8作为我的分析器。你能告诉我我的php查询有什么问题吗?或者它可能是ZF bug?
问候
答案 0 :(得分:8)
经过研究,我发现要改变什么 - 如果拼写错误的字母在前3个字母中 - 那么就找不到了。我不得不设置:
Zend_Search_Lucene_Search_Query_Fuzzy::setDefaultPrefixLength(1);
答案 1 :(得分:0)
您是否尝试在catch语句中放入$ ex的var_dump以确保不会出现异常,从而将$ hits-variable设置为空数组?