Skip to main content

Advanced Filtering Guide

s9s provides powerful filtering capabilities to help you find exactly what you need across thousands of jobs, nodes, and resources. This guide covers all filtering features and syntax.

Quick Filter Demo

See filtering in action:

Search Demo

Basic Filtering

Quick Filter

Press / in any view to activate quick filter:

# Simple text search (matches across all visible columns)
/analysis      # Find items containing "analysis"
/GPU          # Case-insensitive search for "GPU"
/node001      # Find specific node

The quick filter is a plain text search only. The only special prefix is p: for partition filtering (works in both Jobs and Nodes views).

Clear Filters

  • Esc - Clear current filter and exit search mode

Press Ctrl+F in any data view to open global search, which performs plain-text matching across all entity types (jobs, nodes, partitions, users, accounts, QoS, reservations).

Advanced Filter

Field-Specific Filters

The advanced filter bar supports field=value syntax for precise filtering:

# Job filters (advanced filter, Ctrl+F)
user=alice              # Jobs by user alice
name~simulation        # Jobs containing "simulation" in name
state=RUNNING          # Jobs in RUNNING state
partition=gpu          # Jobs in GPU partition

# Node filters (advanced filter, Ctrl+F)
state=idle             # Idle nodes
name~compute           # Nodes containing "compute"

Operators

s9s supports the following comparison operators in the advanced filter:

OperatorDescriptionExample
=Equalsstate=RUNNING
!=Not equalsstate!=FAILED
>Greater thancpus>4
<Less thanpriority<1000
>=Greater or equalpriority>=1000
<=Less or equalcpus<=64
~Containsname~analysis
!~Not containsname!~test
=~Regex matchname=~"test.*2023"
inIn liststate in (RUNNING,PENDING)
not inNot in liststate not in (COMPLETED,FAILED)

Compound Filters

AND Logic

Combine multiple expressions with spaces (AND logic) in the advanced filter:

# Jobs by alice in GPU partition
user=alice partition=gpu

# Running jobs with more than 4 CPUs
state=RUNNING cpus>4

OR Logic (in operator)

Use the in operator for matching against multiple values:

# Jobs in RUNNING or PENDING state
state in (RUNNING,PENDING)

# Jobs in gpu or cpu partition
partition in (gpu,cpu)

Numeric and Time Filters

The advanced filter supports numeric comparisons and automatic parsing of memory sizes (e.g., 4G, 1024M) and durations (e.g., 2:30:00, 30m):

# Resource filters (advanced filter, Ctrl+F)
cpus>48              # More than 48 CPUs
cpus>=8              # 8 or more CPUs
memory>4G            # More than 4GB memory
priority>=1000       # High priority jobs

# QoS
qos=normal           # Normal QoS

Regular Expressions

Use regex for complex pattern matching with the =~ operator in the advanced filter:

# Enable regex with =~ operator (advanced filter, Ctrl+F)
name=~"analysis_\d{4}"      # analysis_0001, analysis_0002, etc.
user=~"(alice|bob)_.*"       # alice_* or bob_* users
name=~"(?i)GPU"              # Case-insensitive match

# Note: ~ (without =) is the contains operator, not regex
name~analysis                 # Matches if name contains "analysis"

State Filters

Job States (Advanced Filter)

# Single state
state=RUNNING
state=PENDING
state=COMPLETED
state=FAILED

# Multiple states using in operator
state in (RUNNING,PENDING)
state!=COMPLETED              # Not completed

Node States (Advanced Filter)

# Basic states
state=idle
state=allocated
state=down
state=drain

State Toggle Shortcuts

In the Jobs view, use keyboard shortcuts to toggle state filters quickly:

  • p/P -- toggle pending state filter
  • a/A -- show all states (clear filter)

In the Nodes view:

  • i/I -- toggle idle state filter
  • m/M -- toggle mixed state filter
  • a/A -- show all states (clear filter)

Saved Filters and Presets (Planned)

Note: Saved filters, filter presets (~ prefix shortcuts like /~active, /~mine), and :filter save/load/list/delete commands are planned features. See #119 for details.

In the meantime, you can re-enter filters manually using / in any view.

Filter Behavior

Auto-Refresh

When auto-refresh is enabled (toggle with m/M in Jobs view), filters remain active as data refreshes. The filtered view updates automatically with each refresh cycle.

Context-Aware Fields

The available filter fields depend on the current view. The advanced filter supports field aliases for convenience:

AliasCanonical Field
nameName
userUser
stateState
partitionPartition
node/nodesNodeList
cpu/cpusCPUs
mem/memoryMemory
accountAccount
qosQoS
priorityPriority
timeTimeUsed
timelimitTimeLimit

Filter Examples

Common Use Cases (Advanced Filter, Ctrl+F)

Find Pending Jobs

state=PENDING

GPU Partition Jobs

partition=gpu state=RUNNING

Jobs by User

user=alice state!=COMPLETED

High CPU Jobs

cpus>64 state in (RUNNING,PENDING)

Multi-User Team Filter

user=~"^(alice|bob|charlie)"

Performance Tips

Efficient Filtering

  1. Use state toggles: Keyboard shortcuts like p (pending) are fastest
  2. Quick filter first: Use / for simple text searches
  3. Global search for cross-resource matching: Use Ctrl+F in any data view

Filter Shortcuts

Keyboard Shortcuts

KeyActionDescription
/Quick filterEnter plain text filter mode
Ctrl+FGlobal searchPlain-text search across all entity types (all data views)
EscClearClear current filter

Using Filters

Use / in any view for plain text search across all columns. Use Ctrl+F to open global search across all entity types (available in all data views). Press Esc to clear the filter.

Troubleshooting Filters

Common Issues

No Results

  • Check filter syntax
  • Verify field names
  • Try broader criteria
  • Check for typos

Too Many Results

  • Add more specific criteria
  • Use compound filters
  • Filter by state first
  • Add time constraints

Slow Filters

  • Avoid regex on large datasets
  • Use indexed fields first
  • Limit time range
  • Consider saved filters

Next Steps