2009-12-15 18 views
5

Estoy usando PHP para acceder a Solr y me pregunto una cosa.Solr PHP client vs file_get_contents?

¿Por qué debería utilizar el cliente Solr PHP cuando puedo usar:

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

para obtener el resultado en arreglos y luego imprimirlos? Realmente no entiendo la diferencia. ¿Hay alguna característica más rica con el cliente PHP?

Respuesta

4

Creo que debido a las razones siguientes:

  • Flexibilidad
  • Manejo de errores
  • Problemas de seguridad
  • Extensibilidad

Todos los temas son el dolor de cabeza de estos scripts pre-hechos y marcos. Entonces, si hay una solución para cierta cosa, te recomendaría ir con eso en lugar de hacer todo lo tuyo.

Además, dado que estos scripts y frameworks tienen buena compatibilidad con la comunidad, existen menos errores, problemas de seguridad y más.

+0

pero ¿cuál sería el problema será cuando apenas usar file_get_contents? envía y yo reverencia? funciona en todos los navegadores, etc. simplemente no obtiene los problemas de seguridad/flexibilidad que esto podría dar. – ajsie

+0

Para reiterar el comentario de Sarfraz, puede hacer file_get_contents. Pero aún necesita hacer su análisis sintáctico, y si utiliza una biblioteca cliente, ¡obtendrá las 4 cosas que especificó! –

0

supongo que el cliente Solr simplemente analiza los resultados y le proporciona una forma conveniente para pasar los parámetros (la construcción de la URL para usted etc.).

0

Para utilizar, file_get_contents() ... su PHP debe tener "allow_url_open" habilitado. Si aloja su sitio web en determinados hosts, entonces no permiten el uso de esta función porque mantienen esta configuración desactivada.

0

En algunos casos, sin embargo, podría tener sentido hacer file_get_contents(). SolrClient no tiene nada para el colapso de campo (es un parche que no está disponible en el tronco), así que tengo que escribir mi propia clase que imita a SolrClient y SolrQuery si no puedo hacerlo con la biblioteca PECL.

1

La biblioteca solr-php-client en realidad tiene un adaptador para file_get_contents (@see Apache_Solr_HttpTransport_FileGetContents), más otra para Curl. La biblioteca solr-php-client es un marco elaborado que le permite hacer mucho más que publicar una URL con parámetros para que pueda completar una búsqueda. SPC proporciona previsibilidad, extensibilidad y seguridad. Además, el solr-php-client está escrito según los estándares de Zend Framework, por lo que complementa cualquier proyecto de ZF.

Si tengo que elegir entre la elección de un proyecto bien mantenido, apoyada por la comunidad, y escribir mi propio guión que no será superior, elegir el proyecto en buen estado, apoyada por la comunidad. Si tiene necesidades que están fuera de ese proyecto, aún puede escribir su propia secuencia de comandos, pero, una vez más, este tipo de biblioteca es compilación para que pueda extenderla sin dolor.