2009-12-15 24 views
5

Sto usando PHP per accedere a Solr e mi chiedo una cosa.Solr client PHP vs file_get_contents?

Perché dovrei usare client Solr PHP quando posso usare:

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

per ottenere il risultato in un array e poi stamparli? Non ho davvero la differenza. Ci sono caratteristiche più ricche con il client PHP?

risposta

4

penso a causa di motivi seguenti:

  • Flessibilità
  • Gestione degli errori
  • Problemi di sicurezza
  • Espandibilità

Tutte le questioni sono il mal di testa di questi script pre-fatti e quadri. Quindi se c'è una soluzione per certe cose, ti consiglierei di andare con quella piuttosto che fare tutto da sola.

Anche perché questi script e framework hanno un buon supporto per la comunità, ci sono bug minori, problemi di sicurezza e altro ancora.

+0

ma quale sarebbe il problema quando si utilizzano solo file_get_contents? manda e ho il reveice? funziona su tutti i browser, ecc., semplicemente non capisco quali problemi di sicurezza/flessibilità potrebbero dare .. – ajsie

+0

Per ripetere il commento di Sarfraz, puoi fare file_get_contents. Ma hai ancora bisogno di fare la tua analisi, e se usi una libreria client ottieni le 4 cose che ha specificato! –

0

Immagino che il client solr analizzi solo i risultati e ti fornisca un modo conveniente per passare i parametri (costruendo l'URL per te ecc.).

0

Per utilizzare, file_get_contents() ... il tuo php deve avere "allow_url_open" abilitato. Se si ospita il proprio sito Web su determinati host, non consentono di utilizzare questa funzione poiché mantengono OFF questa impostazione.

0

In alcuni casi, tuttavia, potrebbe avere senso fare file_get_contents(). SolrClient non ha nulla per il collasso del campo (è una patch non disponibile nel trunk) quindi devo scrivere la mia classe che imita SolrClient e SolrQuery se non riesco a farlo con la libreria PECL.

1

La libreria solr-php-client ha in realtà un adattatore per file_get_contents (@see Apache_Solr_HttpTransport_FileGetContents), più un altro per Curl. La libreria solr-php-client è una struttura elaborata che ti consente di fare molto di più che pubblicare un URL con parametri, in modo da poter completare una ricerca. SPC offre prevedibilità, estensibilità e sicurezza. Inoltre, solr-php-client è scritto negli standard Zend Framework, quindi complimenta qualsiasi progetto ZF.

Se ho una scelta tra la scelta di un progetto ben gestito e supportato dalla comunità e la scrittura del mio script che non sarà superiore, scelgo il progetto ben mantenuto, supportato dalla comunità. Se hai esigenze esterne a quel progetto, puoi comunque scrivere il tuo script, ma, di nuovo, questo tipo di libreria è costruito in modo da poterlo estendere senza problemi.