The Kodexa CLI provides powerful commands for working with documents in document stores. This page explains how to query, upload, and manage documents.
Querying Documents
The query
command allows you to search for and manipulate documents in a document store:
kodexa query <store-ref> [<query>]
For example, to search for all documents in a store:
kodexa query org-name/store-name "*"
Filtering Results
You can filter results using specific queries:
kodexa query org-name/store-name "content:invoice"
Or use filters for more complex queries:
kodexa query org-name/store-name "created>2023-01-01" --filter
Pagination and Streaming
For large result sets, use pagination:
kodexa query org-name/store-name "*" --page 2 --pageSize 20
For continuous processing, use streaming:
kodexa query org-name/store-name "*" --stream
Downloading Documents
To download documents matching a query:
kodexa query org-name/store-name "*" --download
To download the original native files:
kodexa query org-name/store-name "*" --download-native
Labeling Documents
Add labels to documents:
kodexa query org-name/store-name "*" --stream --add-label invoice
Remove labels:
kodexa query org-name/store-name "*" --stream --remove-label draft
Deleting Documents
Delete documents matching a query:
kodexa query org-name/store-name "*" --stream --delete
You’ll be prompted to confirm the deletion.
Uploading Documents
The upload
command allows you to upload files to a document store:
kodexa upload <store-ref> <file-paths>
For example, to upload a single file:
kodexa upload org-name/store-name /path/to/document.pdf
To upload multiple files:
kodexa upload org-name/store-name /path/to/document1.pdf /path/to/document2.pdf
Upload With External Data
You can attach external data to uploaded documents:
kodexa upload org-name/store-name /path/to/document.pdf --external-data
This looks for a matching JSON file (e.g., document.json) and attaches its content as external data.
Multithreaded Uploads
For faster uploads of multiple files:
kodexa upload org-name/store-name /path/to/documents/*.pdf --threads 10
Examples
Search for PDFs in a document store
kodexa query org-name/store-name "path:*.pdf"
Download all documents with a specific label
kodexa query org-name/store-name "labels:invoice" --download
Upload all documents in a directory
kodexa upload org-name/store-name /path/to/documents/*
Add labels to documents matching a criteria
kodexa query org-name/store-name "content:invoice*" --stream --add-label invoice
Delete documents older than a specific date
kodexa query org-name/store-name "modified<2022-01-01" --stream --delete
kodexa upload org-name/store-name document.pdf --external-data