Zend_Search_Lucene无法返回文档

时间:2010-02-23 22:34:35

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

我正在努力解决使用Zend_Search_Lucene时遇到问题的错误/问题。现在我有2个索引,我搜索一个解析的html页面/文本,我使用Zend_Search_Lucene_Document_Html :: loadHTML()函数来读取内容并添加到其中一个lucene索引。

另一个索引我使用Zend_Search_Lucene_Document()函数手动创建一个lucene文档,在文档中添加文本和关键字字段。

将数据添加到索引的两种方法都可以工作,并使用Luke(很棒的工具)查看索引我可以看到两个索引中的不同文档,我可以使用返回结果的Luke编写手动查询。

当我搜索包含手动创建的文档的索引时,我当前遇到错误。使用框架中提供的查询API构建查询时,我得到了我期望的结果数,但是当我尝试从此搜索命中获取“文档”时,没有返回任何内容。

我收到以下错误

Warning: fseek(): supplied argument is not a valid stream resource in C:\www\mysite\development\website\library\Zend\Search\Lucene\Storage\File\Filesystem.php  on line 93

Warning: fread(): supplied argument is not a valid stream resource in C:\www\mysite\development\website\library\Zend\Search\Lucene\Storage\File\Filesystem.php  on line 158

Warning: flock() expects parameter 1 to be resource, integer given in C:\www\mysite\development\website\library\Zend\Search\Lucene\Storage\File\Filesystem.php  on line 214

Uncaught exception 'Zend_Search_Lucene_Exception' with message 'Field name "itemname" not found in document.'

如果我使用HTML内容和查询API对索引进行搜索,我会得到包含文档的结果,我可以从中获取一些文档数据。

对于这两个查询,我使用Zend_Search_Lucene_Search_QueryParser :: parse()函数生成搜索查询,并添加了一些子查询。

有没有任何已知的问题为什么在解析文档时我对它们的搜索运行正常,但是我创建的文档上的文档会因上面的错误消息而失败?

非常感谢,

捐赠

1 个答案:

答案 0 :(得分:1)

请注意,当我尝试将Lucene搜索结果存储在会话文件中以便在另一个页面上使用时,我收到了这些错误。

清除会话,输入一些代码来存储我需要的结果信息作为stdClass()的实例,然后将其保存在会话中,一切都还好。

我基本上说你试图用Lucene检索一些东西,它被保存到文件系统中,无论是Zend Cache,会话还是其他什么。