The q parameter takes your query and execute against the index. Then you can use filter queries (can use multiple filter queries) to filter the results.
For example your query can look like this.
this will match the documents which has 'shakespeare' in the 'author' field. Then you can use filter queries like this.
Those will filter the results based on the other fields. You can even filter on the same field.
The query syntax is similar for both q and fq parameters