terminalSearch Query Syntax

The Duro search bar supports a structured key:value query syntax that lets you build precise filters by typing. Queries are parsed into filter pills that you can further refine visually.

circle-info

This page covers the manual search syntax (Normal mode). For AI-powered natural language search, toggle "AI Mode On" in the search bar and type freely. For the programmatic API, see Searching and Filtering.

How It Works

  1. Type a query like type:part status:design in the search bar

  2. Press Enter

  3. Your query is parsed into filter pills on the components page

  4. Results update immediately

Multiple filters separated by spaces combine with AND logic. You can switch to Any (OR) mode using the toggle in the filter pill bar.


Quick Reference

Key
Aliases
Description
Example

type

Component type

type:part

status

Status name

status:design

state

Released or modified

state:released

category

Category name

category:capacitor

label

labels

Label / tag name

labels:"Needs Review"

cpn

Part number (CPN)

cpn:212-00001

name

Component name

name:"Mountain Bike"

desc

description

Description text

desc:ceramic

created

createdAt

Creation date

created:>2025-01-01

modified

updatedAt

Last modified date

modified:>2025-01-01

createdBy

Creator name

createdBy:dustin

modifiedBy

Last modifier name

modifiedBy:rachel

rev

revision

Revision value

rev:>A

pinned

Pinned status

pinned:true

bookmarked

Bookmarked status

bookmarked:true

attr:

Attribute value

attr:capacitance:>10

Free text without a key prefix searches across name, CPN, and description simultaneously.


Operators

Syntax
Meaning
Example

key:value

equals

status:design

key!:value

not equals

status!:design

key:val1,val2

any of (OR)

status:design,prototype

key!:val1,val2

none of

modifiedBy!:dustin,yuri

key:>value

greater than / after

created:>2025-01-01

key:<value

less than / before

rev:<C

key:>=value

greater than or equal

attr:weight:>=100

key:<=value

less than or equal

attr:capacitance:<=10

key:val1..val2

range (inclusive)

created:2025-01-01..2025-06-01

Quoting

Use double quotes for values that contain spaces:

Commas and colons inside quotes are treated as literal characters:


Keys in Detail

type

Filter by component type. Values: part, assembly, document.

status

Filter by the component's custom status name. Uses the exact status names configured in your library.

state

Filter by release state. Values: released, modified.

category

Filter by category name. Uses the exact category names configured in your library.

label / labels

Filter by label (tag) name. Uses the exact label names in your library.

cpn

Filter by component part number (CPN). Matches the displayed CPN value.

name

Filter by component name. Supports partial matching.

desc / description

Search within component descriptions. Uses full-text search with word stemming (e.g., "capacitor" matches "capacitors").

created / modified

Filter by creation or modification date. Supports comparison operators and ranges.

createdBy / modifiedBy

Filter by the user who created or last modified the component. Matches against user names in your library.

rev / revision

Filter by revision value. Supports comparison operators for ordering.

pinned / bookmarked

Filter by pin or bookmark status.

attr: (Attributes)

Filter by user-defined attribute values. The attr: prefix is required to distinguish from built-in keys. Attribute names are matched case-insensitively against your library's configured attributes.

circle-info

Attribute filters require the component to have the attribute. For example, attr:color!:black returns components that have a color attribute but where the value is not black. Components without a color attribute are excluded.


Any text without a key: prefix is treated as a free-text search across component name, CPN, and description.

Free text can be combined with key:value filters:


Combining Filters

Multiple space-separated filters combine with AND logic:

This finds parts in design status, modified by dustin, created after Jan 1, 2025 — all conditions must match.

After parsing, you can switch to Any (OR) mode using the All/Any toggle in the filter pill bar.


Common Scenarios

Find all parts in a specific status

Find components not modified by a specific user

Find released resistors and capacitors

Find components modified in the last quarter

Find components by date range

Find components by description keyword

Find parts where an attribute exceeds a threshold

Find components where color is not black

Exclude multiple users from results

Find components with a specific revision or higher

Find pinned favorites in production

Combine free text with structured filters


Error Handling

If a key is unrecognized, the search bar highlights the problematic segment and suggests a correction. For example:

  • weight:100 — suggests attr:weight:100 (attribute prefix required)

  • foobar:xyz — shows "Unknown key" error

Partially valid queries still work. If 3 of 4 segments parse successfully, the 3 valid filters are applied and the 1 error is shown.


API Equivalent

The search bar syntax maps to the buildFilterFromQuery GraphQL query. API consumers can use this directly:

Or execute the search in one call:

To paginate through results, pass the endCursor from the previous page as after:

circle-check

Next Steps

Last updated

Was this helpful?