1

我已经设法使用我在此处找到的插件在我的 Windows 7 64 位机器上安装了 Solr for PHP:

downloads.php.net/pierre/

它被链接到这个网站:

wiki.apache.org/solr/SolPHP

(链接不可点击,因为我是新用户)

我已经启动并运行了一切,搜索和索引工作正常,但只有当我使用getRawResponse()方法并通过 SimpleXml 解析它时(http://de.php.net/manual/en/book.simplexml.php )。应该返回 PHP 对象的getDigestedResponse()string(1) " "方法只返回. 方法 getResponse() (http://docs.php.net/manual/en/solrresponse.getresponse.php) 只是超时。

这不是什么大问题,但是原始响应中的一些 XML 似乎无效并使用 simpleXML 解析,缺少某些属性,使用正则表达式获取所需数据也将是很麻烦。

有没有人让这个工作呢?非常感谢您的帮助!

4

1 回答 1

0

取决于您如何解析响应。尝试下面的代码并删除 PHP/PECL solr 库并转到 CURL(例如:hostNameHere:8983/solr/select/?q=solr&start=0&rows=10&indent=on 并将结果 XML 发送到下面的函数)。

如果您可以通过 URL 访问资源(solr),则无需使用辅助库来执行 CURL 可以执行的操作:

function makeSimpleXML($xml) {
    $dom = new DOMDocument;
    $dom->loadXML($xml);
    if (!$dom) {
        // ErrorUtility::throwFatal("could not parse xml. please check the format", "XMLParisng Error");
    }
    return simplexml_import_dom($dom);
}
于 2012-10-13T03:01:59.970 回答