I have a data set of many small user-based text collections that I would like to search. There are 1000s of users with between 10 to 1000 texts each (100 or so on average). My initial idea was to create an index per user, as this allows me to have user-specific synonyms. However, on this forum I found that having such a high number of indexes (and thus: shards), is probably not such a good idea performance-wise.
Therefore I'm looking into the possibility of having a shared index, with index aliasing and shard routing per user. However, it looks like this means I have to give up user-specific synonyms, as synonyms are index-based. Is this correct, or is there a way do to alias-specific query expansion in a shared index, for example?