Search, Filters & Views
Searches, filters and views is one of the fundamental building blocks in Tana. Get a good overview and learn how you can build flows for pretty much anything you can imagine
Tana is changing at a rapid pace 🚀 While many concepts remain the same, some user interface and features have changed a lot since they first were documented here! Please keep this in mind while browsing.
On of the most powerful features in Tana is the Live search, which is essential to set up the flows you want.
A live search can be set up in multiple ways:
The main way is to use the Find Nodes command from the command line, which lets you drill down to the search that you want.
Clicking a tag, clicking the "List of" or navigation target that's there, will bring you to a page with Live search active.
Opening a field's configuration, and clicking the spyglass will give you a list of all nodes with that field.
Choose "Show view options" for a node, with Command line or the context menu, and click on Search.
You can quickly edit your Live search by clicking Live search and edit it on the spot.
Our Navigators have created a Tana Template full of Live Search examples that allow you to interact with each search expression below to see how they work. They cover the basics and will continuously be updated as we surface more useful examples from the community. Click this link to save the resource in one of your Tana workspaces.
All live searches have a query builder that defines what it's looking for. They must consist of a flat list of match-clauses, each of which must be true for a node to match the search.
Below is a record of all search expressions possible in Tana:
Tana objects | Description |
---|---|
A reference to a node that is not a supertag | Only nodes below that reference in the node tree will be candidates This includes referencing a Workspace to limit hits to nodes that live in that Workspace Can be thought of as a descendant of operator |
A reference to a supertag | Only instances of that supertag will be candidates Note that you will want to @ mention the supertag, not #. |
A reference to an field definition | Only nodes that has a value set for this field will match |
A field with one or more values | One or more plain-text values: nodes with this field that contain any of these values will match PARENT/GRANDPARENT: sets the field value relative to the parent/grandparent of the search node. Useful for creating search nodes that collect backlinks on a parent/grandparent node The system nodes Defined/Not Defined will match nodes that fall in either state. A "Not Defined" field means that a field is still in its default, untouched form from the supertag template. A Defined field may therefore still look empty, but have a history of being edited in the past. The system nodes Set/Not set will match nodes that have a value for this field. |
A plain text node | Only nodes that has a title with the text as a substring will match |
A regular expression between /.../ (if you have turned on regexp in Tana Labs) | Only nodes whose title match the regular expression will match |
Logical operators | Description |
---|---|
AND | combines multiple clauses (is implied at the top level) |
OR | any of the clauses in the field values should match |
NOT | negates a single clause (if you want to negate multiple, you need multiple NOT statements) |
LT | the field value should be a field, with a value - finds nodes that have a value less than the value provided. Also works with dates. |
GT | the field value should be a field, with a value - finds nodes that have a value greater than than the value provided. Also works with dates. |
LINKS_TO | Matches all nodes that have inline refs or are linked nodes of the node in the value field. This is similar to the list you get as "Linked References" when zooming in on a node. You can also use PARENT and GRANDPARENT to find all nodes that link to the parent/grandparent node. |
COMPONENTS_REC | Matches results that are part of a defined semantic relationship. Works in conjunction with the Part Of feature. Read more about it here: PartOf & COMPONENTS_REC |
Plain text node using one of these keywords: | Description |
---|---|
PARENTS_DESCENDANTS | Matches will be limited to nodes that are siblings of the node with the search expression defined. 1 level up. |
GRANDPARENTS_DESCENDANTS | Matches will be limited to the tree below the node above the parent node of the node with the search expression defined. 2 levels up |
PARENTS_DESCENDANTS_WITH_REFS | Same as PARENTS_DESCENDANTS, but also including any references. This makes it possible to define searches on nodes in Supertags, and have the supertag instances get local search behavior. E.g. a Project supertag could have a Bugs node with a search defined that would only find Bug-instances within the scope of the project from which it was run. |
GRANDPARENTS_DESCENDANTS_WITH_REFS | Same as GRANDPARENTS_DESCENDANTS, but also including any references |
HAS_ATTRIBUTE | Any node with a field will match |
IS_TAG | Any node that is a supertag definition |
HAS_TAG | Any node that is tagged with a supertag (but is not a supertag def itself) |
HAS_MEDIA, HAS_AUDIO, HAS_VIDEO, HAS_IMAGE | Any node that has media, audio, video or image type of content attached to it, respectively |
IS_COMMAND | Any command node |
CREATED LAST <N> DAYS | Any node that has been created the last N days |
TODO | Nodes that have a checkbox, regardless if is is checked or not |
DONE | Only nodes that have been marked as done |
DONE LAST <N> DAYS | Any node that has been marked as done (using keyboard action) the last N days |
NOT DONE | Only nodes that have not been marked as done |
OVERDUE | Only nodes with the system field Due date, which are overdue |
MODIFIED BY (USER EMAIL) LAST (NUMBER) DAYS | Any nodes modified by the user with the user email, within the last N days. |
MODIFIED BY (USER EMAIL) ANYTIME | Any nodes modified by the user with the user email at any timer |
DONE LAST (NUMBER) DAYS | Marked as done in the last n days |
EDITED LAST (NUMBER) DAYS | Edited in the last n days |
FOR DATE YYYY-MM-DD | Node has an inline ref to the date specified |
FOR RELATIVE DATE (KEYWORD) | Used in Date fields, matches with field values that are dates Valid keywords: today, tomorrow, this week, next week, this month, next month |
SIBLING NAMED "NAME" | If the search node has a sibling (another node with the same parent) with the name provided, it will limit the search to descendants of that node. |
Searches, filters and views is one of the fundamental building blocks in Tana. Get a good overview and learn how you can build flows for pretty much anything you can imagine