Searching with keyword lists#
You can reference a keyword list in any search query using the @ syntax. When the query runs, the platform expands the reference into the individual keywords in the list and matches each one against the searched field.
Where you can use @list-identifier#
You can reference a keyword list anywhere a value would normally appear in a search query:
As the value of a field —
tags:@my-listmatches entities whosetagscontain any keyword frommy-list.As a multi-value field expression —
tags:(@my-list OR @my-other-list)matches entities whosetagscontain any keyword from either list. The expression must be enclosed in parentheses.Without a field prefix —
@my-listis also supported. The search runs against multiple fields at once. For better accuracy and performance, prefer scoping the reference to a specific field.
How each keyword is matched#
When the platform expands a list, every keyword is matched as one of two types, depending on whether it contains a wildcard character (* or ?):
Text keyword — no wildcard. Matched as a phrase against tokenized text fields. The platform tokenizes both the keyword and the field’s content the same way, then requires the keyword’s tokens to appear in the same order and proximity.
Wildcard keyword — contains
*or?. The platform transforms it into a substring search by wrapping it with*on both sides. As a result,apt*,*apt, and*apt*all behave identically: they match any field value containing the substringapt.
All matching is case-insensitive, regardless of keyword type.
Note
No anchored matching for wildcard keywords
Wildcard keywords (those containing * or ?) always perform substring matching.
Patterns like foo*, *foo, and *foo* are all treated identically —
each matches any value containing foo.
This means you cannot strictly anchor a wildcard to the start or end
of a field, but substring matching often serves you better in practice.
For example, the keyword *@abc.com finds emails at abc.com
wherever they appear in a field, including inside descriptions like
“Phishing email sent from user@abc.com to internal mailbox”.
An anchored “ends with” search would miss that case because the field
does not literally end with @abc.com.
Choosing between text and wildcard keywords#
Use plain text keywords (e.g. acme.io) when you want precise matches and have control over the exact strings you expect to see.
Use wildcards (e.g. *acme.io, *.acme.io) when you want broader, “find anything containing this” matching at the cost of occasional false positives.
Text keyword examples#
For the text keyword apt, matches against different field values:
Field value |
Match? |
Why |
|---|---|---|
|
✓ |
Field tokenizes to |
|
✓ |
Tokenizes to |
|
✓ |
Tokenizes to |
|
✗ |
Tokenizes to |
|
✗ |
Tokenizes to |
For the text keyword acme.io, the dot connecting alphanumeric text keeps it as a single token:
Field value |
Match? |
Why |
|---|---|---|
|
✓ |
Tokenizes to |
|
✓ |
Tokenizes to |
|
✓ |
Tokenizes to |
|
✗ |
Tokenizes to |
|
✗ |
Tokenizes to |
To match subdomains of acme.io, use a wildcard keyword instead.
Wildcard keyword examples#
Within the substring, the wildcard characters still have meaning:
*matches zero or more characters.?matches exactly one character.
For the wildcard keyword *apt* (or equivalently apt* or *apt — they all become substring searches):
Field value |
Match? |
Why |
|---|---|---|
|
✓ |
Contains |
|
✓ |
Contains |
|
✓ |
Contains |
|
✓ |
Contains |
|
✓ |
Contains |
This matches everything containing apt, including unintended matches like aptitude and RAPTURE. Use wildcards carefully — they often match more broadly than expected.
For the wildcard keyword *.acme.io:
Field value |
Match? |
Why |
|---|---|---|
|
✗ |
Does not contain |
|
✓ |
Contains |
|
✓ |
Contains |
|
✗ |
Does not contain |
To match acme.io and all its subdomains in one go, use either:
Two keywords in the list:
acme.ioand*.acme.io.A single wildcard:
*acme.io(matches anything containingacme.io, including the bare domain). Note this is broader and may match unintended values likeacme.iox.com.
Query examples#
Assume a keyword list acme-assets containing keywords like acme.io, prod.acme.io, *.acme.io, 192.168.*.
Query |
What it returns |
|---|---|
|
Entities whose |
|
Entities whose title matches any keyword from the list. |
|
Entities whose description matches any keyword from the list. |
|
Entities where any of the searched fields match any keyword from the list. |
|
Reports tagged with at least one keyword from the list. |
|
Entities tagged with at least one keyword from either list. |