sql >> Databasteknik >  >> RDS >> Mysql

Sphinx utan att använda ett auto_increment-id

Visst - det är lätt att komma runt. Om du behöver skapa dina egna ID:n bara för Sphinx och du inte vill att de ska kollidera, kan du göra något så här i din sphinx.conf (exempelkod för 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  
}

Det enda problemet är att du fortfarande behöver ett sätt att veta vilka poster som matchades av din sökning. Sphinx kommer att returnera id (som nu är meningslöst) plus eventuella kolumner som du markerar som "attribut".

Sphinx 0.9.10 och senare kommer att kunna returnera din produktkod till dig som en del av sökresultaten eftersom den har stöd för strängattribut.

0.9.10 är inte en officiell utgåva ännu men det ser bra ut. Det ser ut som att Zawodny kör över det på Craig's List så jag skulle inte vara alltför nervös över att lita på den här funktionen.



  1. Android Room Library kan inte kopiera databasen från tillgången

  2. Hur man får det aktuella datumet i SQL Server

  3. Utmaningslösningar för nummerseriegenerator – del 2

  4. PostgreSQL GROUP BY skiljer sig från MySQL?