Sorting, Filtering & Search
Sorting
Click any column header to sort. First click sorts ascending (▲), second click descending (▼), third click removes sorting. Only one column can be sorted at a time. Sort indicator arrows appear in the column header.
Filtering & Search
Primentra uses a high-performance search and filter engine optimized for datasets with 500,000+ rows. The system combines Full-Text Search indexes, direct population, and successive narrowing to deliver sub-100ms response times.
Global search: Use the search bar in the toolbar to search across all visible columns. When Full-Text Search is installed, global search uses CONTAINS() with prefix matching — typing "amster" will match "Amsterdam". Multiple words are combined with AND: "west amsterdam" finds rows containing both words. Without FTS, search falls back to LIKE (slower but functional).
Column filters: Each column header has a filter input:
- Text columns — Type to filter by substring (case-insensitive). Uses a 1-second debounce to avoid unnecessary queries while typing. Press Enter to apply immediately. You can also paste text into filter inputs.
- Domain columns — Dropdown to filter by a specific parent value. Multiple domain filters are combined with AND logic (a row must match all active domain filters).
- Boolean columns — Dropdown with All / Active / Inactive
How filters work together:
When you combine multiple filters, Primentra uses a smart ordering strategy:
- The first active filter (global search, name, or code) directly selects only matching rows — the entire dataset is never loaded into memory
- Remaining filters narrow the result set further using successive elimination
- Domain filters are applied last as exact-match lookups
For example, filtering on name="200" and code="6" on a 525,000-row entity:
- Step 1: FTS finds ~1,222 rows matching "200" in the Name column
- Step 2: LIKE narrows to ~311 rows also containing "6" in the Code column
- Total time: ~139 ms
Performance benchmarks (525,000 rows):
| Operation | Response time |
|---|---|
| Global search (FTS) | ~19 ms |
| Single text filter (name or code) | ~88 ms |
| Combined text filters (name + code) | ~139 ms |
| Domain column filter | ~93 ms |
| No filters (first page load) | ~1.3 s |
Active filters are highlighted in teal. The toolbar shows a "N filter(s) clear" button when filters are active — click it to reset all filters.
Show inactive toggle: For entities with an Active/Inactive flag, use the checkbox in the toolbar to include or exclude inactive records.