1.  I'm unclear as to why you'd want to ngram an id field, unless it's by character rather than by token
2.  I don't think you want ngrammed fields in your qf and pf;  you only want to use them for the autosuggest, I'd imagine.  If they are groups of tokens, you can accommodate that in edismax with boost values for pf3 (token triples) and pf2 (token duples).