为什么Zend Lucene没有找到结果,但Luke为同样的模糊查询做了

时间:2009-06-05 09:52:53

标签: php zend-framework lucene

我正在使用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?

问候

2 个答案:

答案 0 :(得分:8)

经过研究,我发现要改变什么 - 如果拼写错误的字母在前3个字母中 - 那么就找不到了。我不得不设置:

Zend_Search_Lucene_Search_Query_Fuzzy::setDefaultPrefixLength(1);

答案 1 :(得分:0)

您是否尝试在catch语句中放入$ ex的var_dump以确保不会出现异常,从而将$ hits-variable设置为空数组?