Issue when combining shingle filter and stopwords

"filler_token": "" does not works as you probably expect here. Your N-grams are "porte de", "porte de garage" and "de garage" where "de" is replaced with "" lead to "porte ", "porte garage" and " garage" effectively or something close to this.

I think that ES team actually expects that filler_token will be some meaningful but 'unusual' symbol so that "something <filler>" never fires. But that's just a suspicion rather than fact...