Claro - isso é fácil de contornar. Se você precisar criar seus próprios IDs apenas para o Sphinx e não quiser que eles colidam, você pode fazer algo assim em seu sphinx.conf (exemplo de código 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
}
O único problema é que você ainda precisa saber quais registros foram correspondidos pela sua pesquisa. Sphinx retornará o id (que agora não tem sentido) mais quaisquer colunas que você marcar como "atributos".
O Sphinx 0.9.10 e superior poderá retornar o código do produto para você como parte dos resultados da pesquisa, pois possui suporte a atributos de string.
0.9.10 ainda não é um lançamento oficial, mas está ótimo. Parece que Zawodny está rodando na Craig's List então eu não ficaria muito nervoso em confiar nesse recurso.