Is there a way to search two different tags and filter on criteria per tag?

You can definitely do this with the multi-tag query system, here is an example of how it works.

Below is a screenshot example of a multi-tag query.  Take a look and then lets break it down by sections of the query

 

In yellow, we simply start with more than one tag - in my example, PCAP and DNS entries. Next, in green, I filter down on some data related to just the pcap tag (by prefixing that pipeline stage with "tag=pcap". I do this again on DNS data (blue box), and finally, in the pink box, do some operations on anything that made it up to this point. As you can see in the table output, I have some data in the "SrcIP" column, as well as the "Name" column, and it's blank everywhere else - I've essentially fused two completely unrelated datasets together.
This works exactly the same with "ax", by simply invoking "ax" on each tag with whatever filters you want. For example:
"tag=foo,bar ax hostname=google | tag=foo ax IP==10.0.0.1 | tag=bar ax value==key |..."