Synopsis
Description
dms search scans every .json file in a directory, loads the records, and applies the filters you specify. All filter conditions are combined with AND logic — a record must satisfy every active filter to appear in the results.
Results are printed as a formatted table showing filename, title, type, language, and creator. Add --verbose to also print a truncated description below the table.
Options
Directory of DMS records to search. Must exist and must be a directory.
Filter by heritage type. Must be an exact match (e.g.,
poem, story, photo).Filter by subject tag. Partial, case-insensitive match against each value in the
subject array (e.g., --subject displacement matches forced displacement).Filter by creator name. Partial, case-insensitive match against the
name field of each creator object.Filter by language code. Exact match (e.g.,
en, sw, fr).Include only records whose
date.created is on or after this date. Format: YYYY-MM-DD.Include only records whose
date.created is on or before this date. Format: YYYY-MM-DD.Free-text search. Case-insensitive substring match across
title, description, and subject values.Show a truncated description (up to 120 characters) for each matching record below the results table.
Examples
Notes
Records with no
date.created field are excluded when --from or --to is used, because there is no date to compare against.JSON files containing a top-level array are also searched — each element of the array is treated as a separate record, identified by
filename[index] in the results table.