The queryparser parses input on whitespace, and sends each whitespace separated term to its own independent token stream.
This breaks the following at query-time, because they can't see across whitespace boundaries:
- n-gram analysis
- synonyms (especially multi-word for whitespace-separated languages)
- languages where a 'word' can contain whitespace (e.g. vietnamese)
Its also rather unexpected, as users think their charfilters/tokenizers/tokenfilters will do the same thing at index and querytime, but
in many cases they can't. Instead, preferably the queryparser would parse around only real 'operators'.