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

Sphinx mà không sử dụng id auto_increment

Chắc chắn - điều đó thật dễ dàng để làm việc xung quanh. Nếu bạn cần tạo ID của riêng mình chỉ cho Sphinx và bạn không muốn chúng xung đột, bạn có thể làm điều gì đó như thế này trong sphinx.conf của bạn (mã ví dụ cho MySQL)

source products {

  # Use a variable to store a throwaway ID value
  sql_query_pre = SELECT @id := 0 

  # Keep incrementing the throwaway ID.
  # "code" is present twice because Sphinx does not full-text index attributes
  sql_query = SELECT @id := @id + 1, code AS code_attr, code, description FROM products

  # Return the code so that your app will know which records were matched
  # this will only work in Sphinx 0.9.10 and higher!
  sql_attr_string = code_attr  
}

Vấn đề duy nhất là bạn vẫn cần một cách để biết những bản ghi nào đã được khớp với tìm kiếm của bạn. Sphinx sẽ trả về id (hiện không còn nghĩa) cùng với bất kỳ cột nào mà bạn đánh dấu là "thuộc tính".

Sphinx 0.9.10 trở lên sẽ có thể trả lại mã sản phẩm cho bạn như một phần của kết quả tìm kiếm vì nó có hỗ trợ thuộc tính chuỗi.

0.9.10 chưa phải là bản phát hành chính thức nhưng nó trông rất tuyệt. Có vẻ như Zawodny đang chạy nó trên Craig's List vì vậy tôi sẽ không quá lo lắng về việc dựa vào tính năng này.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách đổi tên hai bảng trong một hoạt động nguyên tử trong MySQL

  2. Làm cách nào để kết nối với MySQL DB đang chạy dưới dạng vùng chứa trong docker?

  3. Làm thế nào để tìm kiếm dữ liệu JSON trong MySQL?

  4. MySQL đếm các ngày liên tiếp cho chuỗi hiện tại

  5. Cách kiểm tra xem tên người dùng đã tồn tại với PHP / MYSQL hay chưa