2011-12-07 39 views
5

Tôi đang làm việc để thiết lập thiết lập Rails 3.1 đa lớp đơn giản - ứng dụng web trên một hoặc nhiều máy chủ, cơ sở dữ liệu postgresql và chỉ mục tìm kiếm Sphinx của chúng tôi trên máy chủ từ xa.ThnkingSphinx (sphinxd) trên máy chủ cơ sở dữ liệu từ xa với chỉ mục delta?

Trên thiết lập một máy chủ, chúng tôi đang sử dụng ThinkingSphinx và chỉ mục delta (sử dụng delay_job), sau đó là cron hàng đêm để cập nhật chỉ mục chính. Hoạt động tuyệt vời.

Vì vậy: người dùng tạo nội dung có thể lập chỉ mục; ứng dụng yêu cầu delay_job lên lịch cập nhật; delta-indexer thêm nội dung mới vào delta-index; tìm kiếm xem xét cả hai để giải quyết truy vấn tìm kiếm một cách chính xác; công việc hàng đêm tạo lại chỉ mục chính duy nhất.

Các tài liệu cho ThinkingSphinx nói here near the bottom

Cách tiếp cận tốt nhất là phải có Sphinx, cơ sở dữ liệu và trì hoãn công việc nhiệm vụ xử lý tất cả đang chạy trên một máy.

Nhưng tôi không rõ cách gửi thông tin cần thiết cho quy trình công việc bị trì hoãn đến máy chủ đơn lẻ sẽ được chạy. Tôi đã đọc một số công cụ về việc có một hệ thống tập tin được chia sẻ (yuck - thực sự?). Tôi chưa đọc mã, nhưng có thể có một cách đơn giản?

Đây là hy vọng!

Trả lời

4

Nhân viên công việc bị trì hoãn (chạy trên máy chủ DB/Sphinx) tham khảo cơ sở dữ liệu, trong ngữ cảnh ứng dụng Rails của bạn - vì vậy bạn sẽ cần ứng dụng trên máy chủ DB/Sphinx của mình, nhưng chỉ để chạy Nhân viên DJ.

Từ quan điểm của máy chủ ứng dụng của bạn, TS sẽ chỉ thêm hồ sơ công việc vào cơ sở dữ liệu như bình thường.

Bạn cũng sẽ muốn thiết lập các cài đặt sau - cái này đi vào cuối cấu hình của bạn/application.rb:

ThinkingSphinx.remote_sphinx = Rails.env.production? 

Và thêm phiên bản Sphinx đến cấu hình của bạn/sphinx.yml:

production: 
    version: 2.0.1-beta 
+0

Cảm ơn @pat. Bởi vì chúng tôi đang chạy delay_job cho các nội dung khác khi tạo nội dung có thể lập chỉ mục mới (ví dụ: gửi email) Tôi đã có khái niệm rằng đây là nơi chúng tôi đã lập chỉ mục delta bị trì hoãn. Nhưng tất nhiên nó không phải - 'bó exec rake ts: dd' là nơi lập chỉ mục delta được thực hiện. Trì hoãn điều này, trì hoãn điều đó. Tôi nhận được cornfused :-) Cảm ơn! –

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