A couple of options:
Aggregate searchable fields into a single "synthetic" field at index time. (Field.UnStored is the most suitable type). Simply search on that single field.
Use
MultiFieldQueryParser
.