sql >> Base de Datos >  >> RDS >> Mysql

Sphinx sin usar una identificación de auto_incremento

Claro, eso es fácil de solucionar. Si necesita crear sus propios ID solo para Sphinx y no quiere que colisionen, puede hacer algo como esto en su sphinx.conf (código de ejemplo para 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  
}

El único problema es que aún necesita una forma de saber qué registros coincidieron con su búsqueda. Sphinx devolverá la identificación (que ahora no tiene sentido) más las columnas que marque como "atributos".

Sphinx 0.9.10 y versiones posteriores podrán devolverle su código de producto como parte de los resultados de búsqueda porque admite atributos de cadena.

0.9.10 aún no es un lanzamiento oficial, pero se ve muy bien. Parece que Zawodny lo está superando en la Lista de Craig así que no estaría demasiado nervioso por confiar en esta función.