If you just need to perform some simple filtering on the results, I'd recommend indexing everything and doing the filtering at query-time (unless you're excluding quite a lot of of documents to save hard disk space):
MyModel.objects.filter(live=True).search("..")
Wagtail will convert that filter into part of the Elasticsearch query, so this shouldn't have any noticable effect on performance. This does require all the filter fields to be indexed using index.FilterField
though (Wagtail has done this for all the basic page fields if you are using the page model).
The main advantage of this approach is that is lets you easily drop the filter if you ever need to do this for a separate search feature in the future. For example, Wagtail does this to allow searching all pages in the admin, but only live ones on the frontend.