代码之家  ›  专栏  ›  技术社区  ›  pbrodka

为什么Zend Lucene找不到结果,而Luke找到了相同模糊查询的结果

  •  2
  • pbrodka  · 技术社区  · 17 年前

    我正在使用Zend框架Lucene对搜索引擎进行编码。我正在尝试进行模糊查询: 当我把它放到Luke中时,它发现了14个结果(都有“sample”这个词)。当我使用我的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();
            }
    

    -hits数组为空。我想索引是可以的,而Luke和ZF使用相同的文件。 我使用Zend_Search_Lucene_Analyzer_Common_Utf8作为我的分析器。你能告诉我我的php查询有什么问题吗?或者可能是ZF错误?

    问候语

    2 回复  |  直到 17 年前
        1
  •  8
  •   Jim    12 年前

    经过研究,我发现了需要改变的地方——如果前三个字母中有拼写错误的字母——那么就找不到了。我必须设定:

    Zend_Search_Lucene_Search_Query_Fuzzy::setDefaultPrefixLength(1);
    
        2
  •  0
  •   PatrikAkerstrand    17 年前

    您是否尝试过将$ex的var_转储放在catch语句中以确保不会出现异常,从而将$hits变量设置为空数组?

    推荐文章