sql >> Database >  >> RDS >> Mysql

Sphinx zonder een auto_increment id te gebruiken

Natuurlijk - dat is gemakkelijk te omzeilen. Als je je eigen ID's alleen voor Sphinx moet maken en je wilt niet dat ze botsen, kun je zoiets doen in je sphinx.conf (voorbeeldcode voor 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  
}

Het enige probleem is dat u nog steeds een manier nodig heeft om te weten met welke records uw zoekopdracht overeenkomt. Sphinx retourneert de id (die nu betekenisloos is) plus alle kolommen die u markeert als "attributen".

Sphinx 0.9.10 en hoger kunnen uw productcode naar u terugsturen als onderdeel van de zoekresultaten omdat het tekenreekskenmerken ondersteunt.

0.9.10 is nog geen officiële release, maar het ziet er goed uit. Het lijkt erop dat Zawodny het beheert op Craig's List dus ik zou niet al te zenuwachtig zijn om op deze functie te vertrouwen.



  1. Waarden krijgen die geen cijfers bevatten in SQL Server

  2. Wat is Greenplum-database? Inleiding tot de Big Data-database

  3. pandas' read_sql met een lijst met waarden voor WHERE-voorwaarde

  4. MySQL DROP UNIEKE BEPERKING