$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で検索するのはこれが初めてです。何が悪かったのか誰かが指摘できますか?