You need a parser one way or another to split words of your query
'java Hibernate'
Should end up being 'Java' and 'Hibernate'
Then from those you can do (by priority layer)
Java AND Hibernate
Java OR Hibernate
Java~ OR Hibernate
Java OR Hibernate~
etc
If you reuse the Lucene query parser, you end up losing the ability to define those layers
PS I haven't looked yet at the @Searchable framwork you did for the Wiki
I don't know Hibernate search at all, but it seems to me that a google-style search input should be pretty generic. I do know that before in the dvd store if I type "revolution", I'd get "matrix revolutions" and now I don't. That's kind of frustrating.
This problem is exactly why we should over a new abstraction on the Lucene criterion API: It is either too fine grained or too coarse grained. Emmanuel opted for the course grained QueryParser in the dvdstore because building it manually from the little API pieces (like I did in the wiki) is a PITA.