2009-12-15 6 views
5

J'utilise PHP pour accéder à Solr et je me demande une chose.Solr PHP client vs file_get_contents?

Pourquoi devrais-je utiliser le client Solr PHP quand je peux utiliser:

$serializedResult = file_get_contents(
         'http://localhost:8983/solr/select?q=niklas&wt=phps'); 

pour obtenir le résultat dans les tableaux et les imprimer? Je ne comprends pas vraiment la différence. Y a-t-il des fonctionnalités plus riches avec le client PHP?

Répondre

4

Je pense que pour des raisons suivantes:

  • Flexibilité
  • Gestion des erreurs
  • Problèmes de sécurité
  • Extensibilité

Toutes les questions sont les maux de tête de ces scripts pré-faites et cadres. Donc, s'il y a une solution pour quelque chose, je vous recommande d'y aller plutôt que de tout faire par vous-même.

De plus, comme ces scripts et frameworks ont un bon support de la communauté, il y a moins de bugs, problèmes de sécurité et plus.

+0

mais quel serait le problème en utilisant simplement file_get_contents? ça envoie et je révise? cela fonctionne sur tous les navigateurs, etc., n'obtenez pas ce que les problèmes de sécurité/flexibilité cela pourrait donner .. – ajsie

+0

Pour réitérer le commentaire de Sarfraz, vous pouvez faire file_get_contents. Mais vous avez encore besoin de faire votre analyse, et si vous utilisez une bibliothèque client, vous obtenez les 4 choses qu'il a spécifiées! –

0

Je suppose que le client solr analyse juste les résultats et vous fournit un moyen pratique de passer les paramètres (la construction de l'URL pour vous, etc.).

0

Pour utiliser, file_get_contents() ... votre php doit avoir "allow_url_open" activé. Si vous hébergez votre site Web sur certains hôtes, ils ne permettent pas d'utiliser cette fonction, car ils désactivent ce paramètre.

0

Dans certains cas, cependant, il peut être judicieux de faire file_get_contents(). SolrClient n'a rien pour l'effondrement des champs (c'est un patch non disponible dans le tronc), donc je dois soit écrire ma propre classe qui imite SolrClient et SolrQuery si je ne peux pas le faire avec la bibliothèque PECL.

1

La bibliothèque solr-php-client a en fait un adaptateur pour file_get_contents (@voir Apache_Solr_HttpTransport_FileGetContents), plus un autre pour Curl. La bibliothèque solr-php-client est une structure élaborée qui vous permet de faire bien plus que de publier une URL avec des paramètres afin que vous puissiez effectuer une recherche. SPC fournit la prévisibilité, l'extensibilité et la sécurité. De plus, le client solr-php est écrit dans les standards Zend Framework, donc il complète tout projet ZF. Si j'ai le choix entre un projet bien géré et soutenu par la communauté, et que j'écris mon propre script qui ne sera pas supérieur, je choisis le projet bien entretenu et soutenu par la communauté. Si vous avez des besoins en dehors de ce projet, vous pouvez toujours écrire votre propre script, mais encore une fois, ce type de bibliothèque est construit pour que vous puissiez l'étendre sans problème.