0
$index = Zend_Search_Lucene::create($indexpath);
$doc = Zend_Search_Lucene_Document_Html::loadHTMLFile ($targeturl);
$title = $doc->title;
$body = $doc->body;
$doc->addField(Zend_Search_Lucene_Field::Text('title', $title));
$doc->addField(Zend_Search_Lucene_Field::unStored('body', $body));
$doc->addField(Zend_Search_Lucene_Field::unIndexed('url', $targeturl));
$index->addDocument($doc);
$index->commit();

これが私がzendでインデックスを作成しようとした方法です。これは、crawlerAction()という名前のアクションから実行されます。

searchresultsAction()という名前の別のアクションからデータをフェッチしようとしました。

$index = Zend_Search_Lucene::open($indexpath);
$hits =  $index->find($query);
foreach ($hits as $hit) 
{                   
    echo $hit->url;
    echo $hit->title; 
    echo $hit->body;
}

ここで、$queryは検索文字列です。

出力が得られず、空の配列として$hitsを取得しています。これまでにコードに間違いをしたかどうかはわかりません。zendで検索するのはこれが初めてです。何が悪かったのか誰かが指摘できますか?

4

1 に答える 1

2

Lukeと一緒にインデックスを見て、インデックス作成操作が正常に完了したかどうかを確認します。

于 2012-11-02T16:47:09.597 に答える