All examples show only one textfield.
Yes, You could have only one input text field to catch the search terms. These search terms will be use in the query.
You could have some other additionnal input text fields, but in this case they will be used for the filtering of results
asId is the id of the instance of search input field. By default the id as0 is used.
If you have 2 searchForms, you need to provide two different asId inside the snippet calls, otherwise advSearch doesn't know for which snippet the parameters are.
So yes, asId is mandatory for the input text field used for catching the search terms.
For input text fields used for filtering, asId is useless.
I suppose the name of the textfields have to be the same than the TV name
No. But you will need to do the mapping between the http request variables sent and the TV names inside the queryHook.
I suppose I must replace that
with the name of that TV. Is that correct?
No. searchIndex is by default replaced by "search" which is the name of the http request variable used to submit a request.
By using &searchIndex=`something` inside the snippet calls you can change this default name. You could for instance use "q" rather "search"
Most of the placeholders used inside the template are used and filled by the add-on. You don't need to change them.
Third question: Is it correct if I create a snippet "Filter1QHook" and build the snippet following the pdf file and call the search like this?
[[!AdvSearch? &queryHook=`Filter1QHook` &withTVs=`product, company, field, region, zip, place` ]]
By using &withTVs=`product, company, field, region, zip, place`, you simply specify that the search should occurs inside these TVs
Then the filtering is depending of your needs and should be implemented inside the queryHook