我在互聯網上搜索了很多信息,也嘗試了許多不同的建議,但沒有任何東西似乎能夠滿足我的需求。所以這裏是問題: 我想使用Zend_Search_Lucene在數據庫中執行搜索,但我一直堅持在開始。創建索引並讓Zend工作。林共享HostGator的主機上,並使用這個PHP代碼生成我的索引:將zend框架包含到php項目中zend_search_lucene
include ('/home/username/public_html/website/config.php');
$path = '/usr/local/Zend';
set_include_path(get_include_path() . PATH_SEPARATOR . $path);
require_once('Zend/Loader.php');
Zend_Loader::registerAutoload();
require_once ('Zend/Search/Lucene.php');
$index = Zend_Search_Lucene::create('/home/username/public_html/website/tmpbuild');
$con = mysql_connect("".$dbhost."","".$dbusername."","".$dbpass."");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("".$dbname."", $con);
$sql = ('SELECT * FROM rasti_failai');
while($eilute = mysql_fetch_array($sql))
{
$filenamesql = $eilute['failu_name'];
$dydissql = $eilute['dydis'];
$hostas = $eilute['hostas'];
$datasql = $eilute['data'];
$aprasymassql = $eilute['header'];
$titlesql = $eilute['aprasymas'];
$url = $eilute['url'];
$links = $eilute['links'];
$document = new Zend_Search_Lucene_Document();
$document->addField(Zend_Search_Lucene_Field::unIndexed('ID', $eilute['ID']));
$document->addField(Zend_Search_Lucene_Field::Text('failu_name', $eilute['failu_name']));
$document->addField(Zend_Search_Lucene_Field::UnStored('dydis', $eilute['dydis']));
$document->addField(Zend_Search_Lucene_Field::UnStored('hostas', $eilute['hostas']));
$document->addField(Zend_Search_Lucene_Field::UnStored('header', $eilute['header']));
$document->addField(Zend_Search_Lucene_Field::UnStored('aprasymas', $eilute['aprasymas']));
$document->addField(Zend_Search_Lucene_Field::UnStored('url', $eilute['url']));
$index->addDocument($document); }
$index->commit();
echo $index->count() . " documents have been indexed.\n";
但似乎我不能讓Zend框架的工作,作爲即時通訊收到此錯誤:
Warning: require_once(Zend/Loader.php) [function.require-once]: failed to open stream: No such file or directory in /home/username/public_html/website/adminp/lucene.php on line 15
Fatal error: require_once() [function.require]: Failed opening required 'Zend/Loader.php' (include_path='.:/usr/lib/php:/usr/local/lib/php:/usr/local/Zend') in /home/username/public_html/website/adminp/lucene.php on line 15
我的主人有zend框架(我不知道確切的版本,但我認爲hostgator使用最新的一個,而我使用php5)安裝,並支持說它在/ usr/local/Zend目錄中。
是你的'/ usr/local/Zend'直接庫嗎?比如當你打開它時,你擁有所有的框架? – 2013-03-22 04:26:20
可悲的是我無法訪問zend目錄來查看它的內容,因爲它是Hostgator共享主機帳戶。也許任何建議,我怎麼可以上傳和使用我自己的zend框架...我可以上傳它讓/ say/home/username/public_html/website/Zend或/ home/username/public_html/Zend目錄,然後使用它沒有任何問題? – DadaB 2013-03-22 07:47:43
這個錯誤只是告訴你需要爲Zend Framework實現自動加載器。如果您的虛擬主機託管Zend Framework,那麼他們可能有一個代碼片段,需要使用它來獲得正確的路徑和權限。檢查出http://stackoverflow.com/questions/1466252/zend-framework-1-9-how-to-use-autoloading-without-mvc – RockyFord 2013-03-22 09:43:47