2009-06-05 18 views
2

私はZend Framework Luceneを使用して検索エンジンをコーディングしています。 "name:sxample〜" ルークに入れたとき、14件の検索結果が見つかりました(すべて「サンプル」という単語)。私のPHPコードを使用するとき -なぜZend Luceneは結果が見つからないのですが、Lukeは同じファジークエリに対して同じ結果を返します

$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のバグでしょうか?

挨拶

+0

PHPコードでサンプルをsxampleとして間違えている可能性はありますか? – karim79

+0

ミスペルが目的だった - 私はそのユーザーがミスペルクエリf.eの回答を見つけることができたかった。 - サンプル。 – pbrodka

答えて

8

研究の後、私は何を変更するかを見つけました。スペルミスが最初の3文字に含まれていれば、それは見つかりません。

Zend_Search_Lucene_Search_Query_Fuzzy::setDefaultPrefixLength(1); 
0

は、あなたがこのように空の配列に$ヒット変数を設定し、例外を取得しないようにキャッチ文の中の$元ののvar_dumpを入れてみましたか?

+0

私はそれを試しました - クエリは正しい、例外もありません。 – pbrodka

関連する問題