Zend_Lucene错误

时间:2011-06-23 13:30:03

标签: zend-framework lucene zend-search-lucene

我是使用Zend框架的新手。我想使用Zend_Lucene在我的网站上实现一个小型书籍引擎。我下载了完整的软件包并将其包含在我的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并且我认为我得到了它,这里是一个截图: enter image description here 请支持我的问题,我需要一个毕业项目! 提前致谢! 此致!

2 个答案:

答案 0 :(得分:0)

请勿在Netbeans中使用此“全局包含路径”。在您的启动php文件(index.php)中使用set_include_path()函数。

答案 1 :(得分: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库的绝对路径解决了这个问题 - 所以我看看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');

?>