我使用PHP访问Solr,我想知道一件事。
为什么我可以在使用时使用Solr PHP客户端:
$serializedResult = file_get_contents(
'http://localhost:8983/solr/select?q=niklas&wt=phps');
将结果输出到数组然后打印出来?我真的没有区别。 PHP客户端是否有更丰富的功能?
答案 0 :(得分:4)
我认为原因如下:
所有问题都是这些预先制作的脚本和框架的头痛问题。因此,如果有某种解决方案,我会建议你去做,而不是自己做所有事情。
此外,由于这些脚本和框架具有良好的社区支持,因此存在较少的错误, 安全问题等等。
答案 1 :(得分:1)
solr-php-client库实际上有一个适用于file_get_contents的适配器(@see Apache_Solr_HttpTransport_FileGetContents),另外还有一个适用于Curl的适配器。 solr-php-client库是一个精心设计的框架,它允许您做的不仅仅是发布带有参数的URL,以便您可以完成搜索。 SPC提供可预测性,可扩展性和安全性。此外,solr-php-client编写为Zend Framework标准,因此它与任何ZF项目相称。
如果我在选择维护良好,社区支持的项目和编写自己不会优越的脚本之间做出选择,我会选择维护良好的社区支持项目。如果您有该项目之外的需求,您仍然可以编写自己的脚本,但同样,这种类库是构建的,因此您可以轻松地扩展它。
答案 2 :(得分:0)
我想solr客户端只是解析结果并为您提供传递参数的便捷方法(为您构建URL等)。
答案 3 :(得分:0)
要使用,file_get_contents()...你的php必须启用“allow_url_open”。如果您在某些主机上托管您的网站,那么他们不允许使用此功能,因为他们将此设置保持为关闭状态。
答案 4 :(得分:0)
但是,在某些情况下,执行file_get_contents()可能有意义。 SolrClient没有任何字段折叠(它是一个在主干中不可用的补丁)所以我必须编写我自己的类,它模仿SolrClient和SolrQuery,如果我不能用PECL库。