Index Search¶
Chapter summary A full-text index mechanism for fast searching across large numbers of files. Combines a Lucene.Net full-text inverted index (under
indexes/) with SQLite metadata management (zenith.db), and usesFileSystemWatcherfor differential change tracking. Rich load-control options (idle-only indexing viaIdleOnlyExecution+IdleCpuThreshold, network-drive light processing) minimize impact on other apps.
This section explains the concepts, settings details, and technical workings of index search. It includes both beginner-friendly content for understanding operations and configuration, and advanced technical explanations for those interested in implementation and tuning.
What Is Index Search¶
Index search is a feature that pre-stores file information from folders in a database (index), enabling instant search results even from massive numbers of files.
| Search Mode | Characteristics | Best suited for |
|---|---|---|
| Normal search | Scans the folder on the spot. Always current, but slow for large folders. | Searching within small to medium folders that are currently open. |
| Index search | Uses a pre-built index. Extremely fast, but requires tuning for "when and how much to update." | Cross-folder searching across multiple registered folders. |
Zenith Filer's index feature uses a full-text search engine based on Lucene.NET (the .NET port of Apache Lucene), tuned for high-precision searching of Japanese file names and paths.
Index Lifecycle¶
Indexes are managed through the following flow, from folder registration to updating and rebuilding.
- Registration: Adding a folder in "Index Search Settings" (default: Ctrl+Shift+4) registers it as a search target. No index is created at this point.
- Initial indexing: Pressing "Create Unindexed" scans disk files and creates indexes only for folders that have never been indexed.
- Incremental update: Depending on the configured update mode, indexes are updated via FileSystemWatcher instant detection, periodic rescanning, or manual execution only. Periodic rescanning keeps counting from the last run even while the app is closed; if the interval has already passed when the app starts, it runs a few minutes after startup.
- Operations in the app: whatever you move, copy, delete or rename in Zenith Filer (including paste, drag and drop, batch rename,
Ctrl + Zundo, the AI folder organizer and macros) is reflected in the index right away, whatever the update mode. Entries for places that are gone are removed, and new places show up at once in search and in folder sizes (places outside the index and locked folders are left alone). - Changes in the open folder: under "Auto-detect changes" or "Update at regular intervals", changes made from outside the app, such as in Explorer, to the folder you have open (creating, renaming or deleting files and folders) are reflected too. Under "Update only when needed" they are not.
- Full rebuild: Selecting "Execute Full Rebuild..." from the menu (three dots) deletes and recreates all folder indexes from scratch. If re-executed within the "Full Re-index Minimum Interval" setting, the actual full scan is skipped.
- Pause and Resume: "Pause" stops new index creation, and "Resume" resumes it. Existing indexes remain usable, and searching is available while paused.
Index states are displayed in the index search settings view as follows.
| State | Meaning |
|---|---|
| Not Indexed | Index has never been created. May not be included in search results. |
| Index Complete | Index creation for current content is complete. |
| Incremental Update In Progress | Catching up to the latest state via change detection or periodic scanning. |
| Paused | Index updating is paused. Existing indexes remain usable. |
Search Execution Flow (Normal Search vs. Index Search)¶
Flow when pressing Enter in an index search tab (overview):
- First, existing indexes only are used to quickly retrieve hit candidates and display results.
- (Normal search mode only) If needed, the folder's index is recreated, and if results change, the list is refreshed.
- When "freshness priority" is ON, background incremental updates run separately from the foreground search, improving accuracy and freshness for subsequent searches.
Normal search: If the folder is not yet indexed, creates the index first, then executes the search. If already indexed, search results appear immediately.
Search Result Freshness Warning Bar¶
The yellow bar displayed at the top of index search results is a notice that "search results may be outdated."
- It appears only when some target folders have not yet been indexed.
- The index itself is safe to use, but creating indexes once with "Create Unindexed" will stabilize future search results.
- If the message is unnecessary, close it with the X button on the right of the bar, or turn off "Show message when index may be stale" in app settings.
Troubleshooting and Best Practices¶
| Issue | Possible Cause | Action |
|---|---|---|
| File not found in search results | Index has not been created yet, or the target folder is not registered. | Register the folder in Index Search Settings and execute "Create Unindexed." |
| Results are clearly outdated | Deleted or moved files still remain in the index. | Right-click the folder and execute "Rebuild Index." |
| Warning bar appears frequently | Unindexed folders are registered. | Close the warning with "X," or turn off "Show message when index may be stale" in app settings. Alternatively, execute "Create Unindexed" once to prevent future warnings. |
| Server becomes slow / concerned about background load | Freshness priority or automatic updates are running frequently. | Set to "Update only when needed," turn OFF "freshness priority," and enable "Process network drives gently" for network drives. |
| Keyboard shortcuts stop responding | Focus is stuck on the terminal pane or a specific control. | Restart the app. Clicking on another pane or file list to return focus may also resolve the issue. |