JQL Keywords
Argon automatically indexes issue metadata and exposes it as searchable JQL keywords. These keywords can be used directly in JQL queries without any special syntax or function calls.
How Indexing Works
Argon maintains a real-time index of issue relationships and metadata:
- Event-Driven Updates: When issues are created, updated, linked, or deleted, Argon's event listeners capture the changes
- Indexed Storage: Metadata is stored and indexed on each issue
- Automatic Indexing: Jira automatically indexes these values, making them searchable via JQL
- Near Real-Time: Updates typically appear in search results within seconds
What Gets Indexed
| Data Type | Trigger Events |
|---|---|
| Link counts | Issue linked, unlinked |
| Linked issue metadata | Linked issue updated (status, priority, type) |
| Child/Parent relationships | Parent field changed, subtask created |
| Time in status | Status transitions |
Available Keywords
Link Keywords
| Keyword | Type | Description |
|---|---|---|
linksNumber | Number | Count of outgoing links from this issue |
linkedByNumber | Number | Count of incoming links to this issue |
linkedByIssue | String | Issue keys that link to this issue |
linkedByStatus | String | Status names of issues linking to this issue |
linkedByCategoryName | String | Status category of issues linking to this issue |
linkedByPriority | String | Priority of issues linking to this issue |
linkedByIssueType | String | Issue type of issues linking to this issue |
Hierarchy Keywords
| Keyword | Type | Description |
|---|---|---|
childrenNumber | Number | Count of child issues (subtasks or children) |
childrenIssueIds | String | IDs of child issues |
Operators
Number Keywords
linksNumber, linkedByNumber, childrenNumber
| Operator | Example | Description |
|---|---|---|
= | linksNumber = 5 | Exactly 5 outgoing links |
!= | linkedByNumber != 0 | Has at least one incoming link |
> | childrenNumber > 3 | More than 3 children |
>= | linksNumber >= 1 | At least 1 outgoing link |
< | linkedByNumber < 10 | Fewer than 10 incoming links |
<= | childrenNumber <= 5 | At most 5 children |
String Keywords
linkedByIssue, linkedByStatus, linkedByCategoryName, linkedByPriority, linkedByIssueType
| Operator | Example | Description |
|---|---|---|
= | linkedByStatus = "Done" | Linked by issue with exact status |
!= | linkedByPriority != "Low" | Not linked by low priority issue |
~ | linkedByIssue ~ "PROJ" | Linked by issue key containing "PROJ" |
!~ | linkedByStatus !~ "Progress" | Not linked by status containing "Progress" |
Examples
Finding Issues by Link Count
-- Issues with many dependencies (incoming links)
linkedByNumber > 5
-- Issues that are well-connected (both directions)
linksNumber > 2 AND linkedByNumber > 2
-- Orphan issues (no links at all)
linksNumber = 0 AND linkedByNumber = 0
Finding Issues by Linked Issue Properties
-- Issues blocked by high-priority work
linkedByPriority = "High" AND linkedByStatus != "Done"
-- Issues linked to bugs
linkedByIssueType = "Bug"
-- Issues linked by completed work
linkedByStatus = "Done"
-- Issues in the "In Progress" status category chain
linkedByCategoryName = "In Progress"
Finding Issues by Hierarchy
-- Parent issues with many subtasks
childrenNumber >= 5
-- Issues that are parents (have children)
childrenNumber > 0
-- Leaf issues (no children)
childrenNumber = 0
Combining Keywords with Standard JQL
-- High-priority issues blocked by other high-priority issues
priority = High AND linkedByPriority = "High"
-- Epics with many child stories
issuetype = Epic AND childrenNumber > 10
-- Issues in a specific project with external dependencies
project = DEV AND linkedByIssue ~ "EXT"
Performance Considerations
- Indexed for Speed: JQL keywords are indexed by Jira, so queries are fast
- Combine Wisely: Complex queries with many keywords may still impact performance
- Use Specific Values: Exact matches (
=) are faster than contains (~) - Limit Scope: Add project or other filters to reduce result set size
Indexing Timing
- New Issues: Indexed immediately upon creation
- Updated Issues: Re-indexed within seconds of changes
- Linked Issues: Both source and target issues are re-indexed when links change
- Bulk Operations: May take longer to fully index
Troubleshooting
Keywords Not Appearing in Search
- Wait a few seconds for indexing to complete
- Verify the issue has the expected links/relationships
- Check that Argon is properly installed and running
Unexpected Results
- Remember
linksNumber= outgoing,linkedByNumber= incoming - String comparisons are case-sensitive for
=operator - Use
~for partial/case-insensitive matching
Related
- JQL Functions - For more complex relationship queries
- linkedByQuery - Dynamic link queries
- childrenOf - Dynamic hierarchy queries