关于 php:Zend_Search_Lucene 无法返回文档

Zend_Search_Lucene failing to return documents

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

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

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

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

我收到以下错误

1
2
3
4
5
6
7
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() 函数和一些添加的子查询来生成搜索查询。

是否有任何已知问题,为什么在解析文档时我的搜索运行正常,但我创建的文档上的搜索失败并显示上述错误消息?

非常感谢,

格兰特


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

清除会话,放入一些代码将我需要的结果信息存储为 stdClass() 的实例,然后将其保存在会话中,一切正常。

我基本上会说您尝试检索保存到文件系统的 Lucene 待办事项,无论是 Zend Cache、会话还是其他。