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.