The search on all fields it should be as easy as targeting all fields of the index.
The main complexity of your request is to be able to tell which property actually matched. You could try to extract that information by also having it return an "explanation" object?
Code:
query.setProjection(
FullTextQuery.THIS
FullTextQuery.EXPLANATION);
That will have the query return elements of type Object[], with two elements in each: the entity (as usual), and a description of how each different field matched the query.