Jim Jagielski wrote:
Say you are looking for 'foo' and have a bucket that contains 'jimfoojag'. The fast way to handle this would be to split off 3 buckets from this, one containing 'jim', the other containing 'jag' and the middle one that contains the substitute for 'foo' (say it's 'bar'). The rub is that the pattern matching looks at buckets only, so you wouldn't see a full bucket that contains 'jimbarjag' and so if you had a search for 'mbarj', it would be missed using the "fast way". In the slow way (flattening), instead of creating the 3 buckets, you go ahead and smash them all together resulting in the single bucket that now contains 'jimbarjag'. Now the search for 'mbarj' would succeed.
I'm a little concerned if the module ships /without/ the 'f'latten flag triggered by default. I'd rather the module offered the inverse option. This is truly a 'bug' users won't understand (my text contains 'jimfoojag', why isn't it translating to 'jimbarjag'?!?) And it's an implementation detail that should be kept from the user 99% of the time. So what if we offer a 'f'ast or 'o'ptimized bucket-only flag for users who want to get it trouble (works with one generator and not some other, or works until a filter is inserted, or whatever)? Bill