I think I prefer option 2 because it is simple, but option 3 could make sense as well. I'm just concerned that we might want to perform optimizations based on the index options to only store what is necessary and it will make things complicated. Moreover storing tokenized infos will require more space (3 ints, plus the payload per term, this could easily be 3x or 4x the memory size of the original field).