0

Zend フレームワークの使用は初めてです。Zend_Lucene を使用して、自分の Web サイトで小さな書籍エンジンを実現したいと考えていました。完全なパッケージをダウンロードして Netbeans 7 に含めたところ、うまくいきました。それから、Zend_Lucene の公式サイトの入門チュートリアルを読みました。インデックス作成はできましたが、いくつかのエラーがありました。

require_once('ZendFramework-1.11.7/library/Zend/Search/Lucene.php');
$indexPath = 'C:\wamp\www\witswork\Documents';
$index = Zend_Search_Lucene::create($indexPath);

$index = Zend_Search_Lucene::open($indexPath);

$query = new Zend_Search_Lucene_Search_Query_MultiTerm();
$doc = new Zend_Search_Lucene_Document();
$doc->addField(Zend_Search_Lucene_Field::UnIndexed('url', "Plan.docx"));
$doc->addField(Zend_Search_Lucene_Field::Text('title', "Plan"));

$hits = $index->find($query);
$index->addDocument($doc);
$index->commit();

これらのファイルが作成されました: そして、ここにエラーがあります: _0.cfs、segments_2、optimization.lock.file、read.lock.file、read-lock-processing.lock.file、write.lock.file、segments.gen。

これは、コードを実行してインデクサーを作成した後に表示されるエラーです。

Warning: require_once(Zend/Search/Lucene/Storage/File/Filesystem.php) [function.require-once]: failed to open stream: No such file or directory in C:\wamp\www\witswork\Zend\Search\Lucene\Storage\Directory\Filesystem.php on line 349

Fatal error: require_once() [function.require]: Failed opening required 'Zend/Search/Lucene/Storage/File/Filesystem.php' (include_path='.;C:\php5\pear;ZendFramework-1.11.7/library/Zend') in C:\wamp\www\witswork\Zend\Search\Lucene\Storage\Directory\Filesystem.php on line 349

これにはライブラリを include_path に含める必要があることを読みました。Netbeans をこっそり調べたところ、それを取得したと思いました。ここにスクリーンショットが あります。ここに画像の説明を入力 私の問題をサポートしてください。卒業プロジェクトに必要です! 前もって感謝します!よろしく!

4

2 に答える 2

0

Netbeansではこの「グローバルインクルードパス」を使用しないでください。代わりに、開始phpファイル(index.php)でset_include_path()関数を使用します。

于 2011-06-23T15:55:37.597 に答える
0

同様の問題が発生したばかりで、Zend_Lucene が機能しない理由がわかりませんでした。それはいつも思いついた

Warning: require_once(Zend/Search/Lucene/Storage/File/Filesystem.php) [function.require-once]: failed to open stream: No such file or directory in C:\wamp\www\witswork\Zend\Search\Lucene\Storage\Directory\Filesystem.php on line 349

set_include_path問題は、 Zend Framework への相対リンクのみを提供したため、インクルード パス ( ) がその問題を引き起こしたことです。

Zend Framework Library への絶対パスを指定することでこの問題を解決しました。したがって、Lucene が実行されるかどうかを確認するための最小のコード サンプルは次のとおりです。

<?php

$zendPath = realpath('../_lib/ZendFramework-1.11.11/library/');

set_include_path($zendPath.PATH_SEPARATOR.get_include_path());
include 'Zend/Loader/Autoloader.php';
Zend_Loader_Autoloader::getInstance(); 

$index = Zend_Search_Lucene::create('test');

?>
于 2011-12-29T14:45:43.773 に答える