Solr PHP клиент vs file_get_contents? - PullRequest
       35

Solr PHP клиент vs file_get_contents?

5 голосов
/ 15 декабря 2009

Я использую PHP для доступа к Solr, и мне интересно одно.

Почему я должен использовать PHP-клиент Solr, когда могу использовать:

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

чтобы получить результат в массивах, а затем распечатать их? Я действительно не понимаю разницу. Есть ли у PHP-клиента более богатые возможности?

Ответы [ 5 ]

4 голосов
/ 15 декабря 2009

Я думаю по следующим причинам:

  • Гибкость
  • Обработка ошибок
  • Проблемы безопасности
  • Расширяемость

Все проблемы являются головной болью этих готовых скриптов и фреймворков. Поэтому, если есть решение для определенной вещи, я бы порекомендовал вам пойти на это, а не делать все самостоятельно.

Кроме того, так как эти скрипты и фреймворки имеют хорошую поддержку сообщества, есть небольшие ошибки, вопросы безопасности и многое другое.

1 голос
/ 03 декабря 2010

Библиотека solr-php-client на самом деле имеет адаптер для file_get_contents (@see Apache_Solr_HttpTransport_FileGetContents), а также еще один для Curl. Библиотека solr-php-client - это сложная структура, которая позволяет вам делать гораздо больше, чем публиковать URL с параметрами, чтобы вы могли выполнить поиск. SPC обеспечивает предсказуемость, расширяемость и безопасность. Более того, solr-php-client написан на основе стандартов Zend Framework, поэтому он дополняет любой проект ZF.

Если у меня есть выбор между выбором хорошо поддерживаемого, поддерживаемого сообществом проекта и написанием собственного сценария, который не будет лучше, я выбираю хорошо поддерживаемый, поддерживаемый сообществом проект. Если у вас есть потребности, которые находятся за пределами этого проекта, вы все равно можете написать свой собственный скрипт, но опять же, библиотека такого типа создается, поэтому вы можете безболезненно расширять ее.

0 голосов
/ 25 июня 2010

В некоторых случаях, однако, может иметь смысл сделать file_get_contents (). SolrClient не имеет ничего для свертывания полей (это патч недоступен в стволе), поэтому я должен написать свой собственный класс, который имитирует SolrClient и SolrQuery, если я не могу сделать это с библиотекой PECL.

0 голосов
/ 05 апреля 2010

Для использования file_get_contents () ... у вашего php должна быть включена опция allow_url_open. Если вы размещаете свой веб-сайт на определенных хостах, они не разрешают использовать эту функцию, потому что они отключили этот параметр.

0 голосов
/ 15 декабря 2009

Я полагаю, что клиент solr просто анализирует результаты и предоставляет вам удобный способ передачи параметров (создание URL-адреса для вас и т. Д.).

...