Another way to get the same set of results from the previous query would be searching all the files tagged startrek/ and all the files tagged starwars/, with this query:
$ ls ~/myfiles/store/startrek/+/starwars/@/
first_contact.avi the_wrath_of_khan.avi the_empire_strikes_back.avi
As you can see, the query scifi/@/ is much shorter than the query startrek/+/starwars/@/ but that's not the point.
The new mysterious mark +/ we've just introduced in the middle of the path is a way to build complex queries. It splits the query in two or more parts and processes them as separate queries. Then it merges the results of both queries to form one single superset of results to be returned to the user. To understand a query featuring one or more +/, first split the query by +/. You'll get two or more traditional sub-queries. Tagsistant will perform each sub-query separately and then it will merge the results just before returning them to you.
Translated to English, the previous query sounds like: get the results of the query store/startrek/@/ then merge them with the results of the query store/starwars/@/ and give me back what you've found.
This is totally different from writing two tags one next to the other, without a +/ in between. In that case you would be looking for files that are tagged by both tags, like in:
$ ls ~/myfiles/store/startrek/starwars/@/
which ends in no results (well, this could be no longer true since J.J. Abrams has got in charge of... but I'm straying from the topic).
So, you may be wondering: if I want to lookup all the videos and pictures of startrek from my collection, may I accomplish this with:
$ ls ~/myfiles/store/startrek/picture/+/startrek/video/@/
Yes, that's perfectly fine! A little bit long to write, but fine. And what about the teleport or red alert sounds you've saved as .wav files from the nineties? Just add them!
$ ls ~/myfiles/store/startrek/picture/+/startrek/video/+/startrek/sound/@/
feat. {curly braces}
OK, that's definitely uncomfortable, I agree. But I've an alternative for you: a tag group! Tag groups are tag sets where one tag is enough to have a match. Your previous query is looking for all the files tagged as startrek/ and picture/ or video/ or sound/. The startrek/ tag is required, but any one of the other three tags would be enough. To exploit the compactness of tag groups, just include the last three tags between curly braces, like this:
$ ls ~/myfiles/store/startrek/{/picture/video/sound/}/@
Much shorter and more readable, isn't it? Tag groups can even be combined. Let's suppose you just want files related to Deep Space 9 or Voyager. Then you could query Tagsistant like this:
$ ls ~/myfiles/store/{/DeepSpace9/Voyager/}/{/picture/video/sound/}/@
How compact and quick! We've declared two tag groups, one of two tags and another one of three, saving us from writing six (2 x 3) sub-queries joined by the +/ sign.
The only thing you can't do with tag groups is nest them. What would it mean anyway a tag group inside another one? Of course you are requested to close tag groups before completing the query. The result of ~/myfiles/store/{/startrek/@/ is left undefined.