Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Tích hợp Sphinx vào MySQL

Không thể làm điều đó. Sphinx (khi được bật cho sphinxQL) chỉ cung cấp cho bạn một máy chủ trông giống như một mysql - tức là nó sử dụng cùng một giao thức truyền thông - chủ yếu là do đó có thể chỉ sử dụng lại các thư viện máy khách mysql, thay vì phải tạo một cái mới chỉ dành cho nhân sư.

Chúng là các 'máy chủ' khác nhau. Bạn kết nối với máy chủ mysql để chạy các lệnh mysql; bạn kết nối với máy chủ nhân sư để chạy các lệnh sphinxQL.

Ứng dụng woudl phải kết nối với từng 'máy chủ' riêng biệt. Chỉ cần tưởng tượng nhân sư là một cái gì đó giống như postgres, bạn rõ ràng không kết nối với mysql và mong đợi có thể chạy postgresql.

Tuy nhiên có SphinxSE - một công cụ lưu trữ mysql giả mạo. Bạn cài đặt nó vào mysql và sau đó bạn có thể tạo một bảng bằng cách sử dụng công cụ này. Sau đó, bạn chạy các truy vấn mysql đối với bảng này, dưới mui xe là các liên hệ với một máy chủ nhân sư đang chạy. Vì vậy, đối với mysql, nó trông giống như một bảng chứa dữ liệu, điều này hữu ích nhất vì sau đó có thể 'nối' bảng tìm kiếm này với bảng dữ liệu gốc để lấy kết quả và dữ liệu gốc trong một truy vấn mysql.

Sau đó, ứng dụng không phải kết nối với nhân sư. SphinxSE làm điều đó cho bạn.

http://sphinxsearch.com/docs/current.html#sphinxse

Không. Bạn giữ dữ liệu gốc ở đó, sử dụng công cụ bạn thích. Sphinx chỉ cung cấp một 'chỉ mục' - nó không lưu trữ dữ liệu gốc *. Nó không phải là một cơ sở dữ liệu như vậy, chỉ cung cấp khả năng phân tích nhanh với việc lập chỉ mục được tối ưu hóa cao của nó.

Về cơ bản, bạn yêu cầu nhân sư cung cấp id duy nhất của các tài liệu phù hợp với một truy vấn nhất định. Sau đó sử dụng các id đó để tra cứu dữ liệu. SphinxAPI, sphinxSE và sphinxQL chỉ là ba cơ chế khác nhau để thực hiện điều đó.

Không. Một cá thể nhân sư duy nhất có thể lưu trữ nhiều chỉ mục. Và một chỉ mục có thể có nhiều nguồn. Vì vậy, chỉ có thể tạo một chỉ mục cho mỗi bảng. Hoặc nếu bạn chủ yếu muốn tìm kiếm chúng cùng nhau, có thể chỉ cần tạo một chỉ mục kết hợp.

- ** Chỉnh sửa để trả lời câu hỏi trong phần bình luận:**

Bạn có thể sẽ xác định một chỉ mục nhân sư cho mỗi bảng. Vì vậy, bạn sẽ cần một cặp nguồn / chỉ mục cho mỗi bảng. (trừ khi bạn muốn lập chỉ mục tất cả các bảng trong một chỉ mục, bạn cũng có thể lập chỉ mục.

Nó không thể tự đọc các bảng và tạo tệp cấu hình, bạn phải xác định từng chỉ mục riêng lẻ.

Không. Không phải proxy.

Về cơ bản là có. Máy khách sẽ kết nối với nó giống như cách nó kết nối với máy chủ mysql.

Không, không thể. Kết nối với máy chủ mysql, để chạy các truy vấn mysql. Kết nối với searchd để chạy các truy vấn sphinxQL.

Hai kết nối, một kết nối trên mỗi máy chủ.

Không biết. Có thể là một vấn đề tường lửa.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. 10 câu hỏi phỏng vấn cơ sở dữ liệu MySQL cho người mới bắt đầu và người trung gian

  2. SQL - Làm thế nào để chuyển vị?

  3. Cách cấp quyền thực thi trên thủ tục được lưu trữ cụ thể cho người dùng

  4. Cách chèn dữ liệu tệp csv vào cơ sở dữ liệu mysql

  5. Chèn dữ liệu vào bảng với kết quả từ một truy vấn chọn lọc khác