这段代码有两部分:一个将文档添加到要搜索的索引中,它工作正常,一个 crawl() 函数,它是一个获取页面内容的网络爬虫,它也工作正常。
但是,我需要从 crawl() 函数内部添加一个文档。
当我在 crawl() 函数中移动添加文档的代码时,我得到一个致命错误: 致命错误:调用非对象上的成员函数 addDocument()。
我想知道如何从 crawl 函数内部访问成员函数 addDocument() ?
现在,我有一个工作版本,其中 crawl() 函数以变量的形式返回它已抓取的内容,然后在 crawl() 函数之外的 addDocument 代码也可以访问返回的变量并将文档添加到索引就是这样。但是,只有在我抓取一个页面或没有链接的页面时,这才(逻辑上)有效。由于该函数仅在完成后才返回,并且由于它是递归跟踪页面链接的,因此它将返回的唯一内容是最后一页的内容。我需要将每个页面的内容添加为索引中的新文档。
这是上面描述的工作代码,尽可能多地评论:http: //pastebin.com/5ngcucDp
这是我尝试在 crawl() 函数中移动 addDocument() 的非工作代码:http: //pastebin.com/mUEwQJTG
如果您有涉及如何从 crawl() 函数内部访问 addDocument() 函数的解决方案,请分享。或者,如果您有一个涉及修改工作代码的解决方案,以便它返回它抓取的每个页面的内容而不是最后一页,请分享。
如果您有任何解决方案,请分享,因为我已经筋疲力尽并且已经尝试了我所知道的一切。