2009-12-15 25 views
5

Tôi đang sử dụng PHP để truy cập Solr và tôi tự hỏi một điều.Solr PHP client vs file_get_contents?

Tại sao tôi nên sử dụng Solr PHP khách hàng khi tôi có thể sử dụng:

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

để có được kết quả trong mảng và sau đó in chúng ra? Tôi không thực sự có được sự khác biệt. Có bất kỳ tính năng nào phong phú hơn với ứng dụng PHP không?

Trả lời

4

Tôi nghĩ rằng vì lý do sau:

  • linh hoạt
  • Lỗi Xử lý
  • an ninh Vấn đề
  • extendibility

Tất cả các vấn đề này đau đầu của các kịch bản trước khi thực hiện và khuôn khổ. Vì vậy, nếu có một giải pháp cho một số điều, tôi sẽ khuyên bạn nên đi với điều đó hơn là làm tất cả mọi thứ từ của riêng bạn.

Cũng vì các tập lệnh và khung công tác này có hỗ trợ cộng đồng tốt, có ít lỗi hơn, các vấn đề bảo mật và hơn thế nữa.

+0

nhưng vấn đề sẽ xảy ra khi chỉ sử dụng file_get_contents? nó sẽ gửi và tôi reveice? nó hoạt động trên mọi trình duyệt, v.v. chỉ không nhận được những vấn đề bảo mật/linh hoạt nào mà điều này có thể cho .. – ajsie

+0

Để nhắc lại nhận xét của Sarfraz, bạn có thể làm file_get_contents. Nhưng bạn vẫn cần thực hiện phân tích cú pháp của mình và nếu bạn sử dụng thư viện khách hàng, bạn sẽ nhận được 4 thứ mà anh ta đã chỉ định! –

0

Tôi đoán rằng máy khách solr chỉ phân tích các kết quả và cung cấp cho bạn cách thuận tiện để chuyển các tham số (xây dựng URL cho bạn, v.v.).

0

Để sử dụng, file_get_contents() ... php của bạn phải bật "allow_url_open". Nếu bạn lưu trữ trang web của bạn trên một số máy chủ thì họ không cho phép sử dụng chức năng này vì chúng giữ cài đặt này TẮT.

0

Tuy nhiên, trong một số trường hợp, có thể có ý nghĩa khi thực hiện file_get_contents(). SolrClient không có bất cứ điều gì cho lĩnh vực sụp đổ (đó là một bản vá không có sẵn trong thân cây) vì vậy tôi phải viết lớp của riêng tôi bắt chước SolrClient và SolrQuery nếu tôi không thể làm điều đó với thư viện PECL.

1

Thư viện solr-php-client thực sự có một bộ điều hợp cho file_get_contents (@see Apache_Solr_HttpTransport_FileGetContents), cộng với một cho Curl. Thư viện solr-php-client là một khung công tác phức tạp, cho phép bạn làm nhiều hơn là đăng một URL w/tham số để bạn có thể hoàn thành một tìm kiếm. SPC cung cấp khả năng dự đoán, khả năng mở rộng và bảo mật. Hơn nữa, solr-php-client được viết theo tiêu chuẩn Zend Framework, vì vậy nó khen ngợi bất kỳ dự án ZF nào.

Nếu tôi có lựa chọn giữa việc chọn một dự án được duy trì tốt, được cộng đồng hỗ trợ, và viết kịch bản của riêng tôi sẽ không vượt trội, tôi chọn dự án được cộng đồng hỗ trợ tốt. Nếu bạn có nhu cầu bên ngoài dự án đó, bạn vẫn có thể viết kịch bản của riêng bạn, nhưng một lần nữa, loại thư viện này được xây dựng để bạn có thể mở rộng nó một cách không đau đớn.

Các vấn đề liên quan