Search indexes
Use Search indexes to inspect and maintain the Lucene indexes that support Actualog keyword search, quick search, autocomplete, and fast entity discovery. The page is for Application Admins who need to confirm whether search infrastructure is available, current, and safe to use after deployment, restore, import, or bulk data work.
This page manages Lucene search indexes. It is separate from Help Knowledge, which uses Help Content and Azure AI Search so Hex can answer product questions from trusted documentation.
Start here
When you open the page, first look at Index Status.
- If the table shows values for documents, last check, directory, index, and health, the page is showing the latest cached Lucene health report.
- If the table shows
-or empty values, no health report has been collected for this application process yet. Use Check all now or the per-row Check action. - If an index is missing, unhealthy, or unexpectedly empty, use the action that matches the problem. Prefer Refresh for normal stale data, and use Rebuild only when the index must be recreated.
Why the table may show no data
The status table reads cached diagnostics. It does not run Lucene checks just because the page loaded.
A row can show no diagnostic values when:
- the current application process has not run a Lucene health check yet;
- startup health checks are disabled for this environment;
- the process restarted and the in-memory health cache is empty again;
- the last check failed before a report could be stored.
This does not automatically mean the index is broken. It means the page has no cached health snapshot to display. Run Check all now to collect current diagnostics for every managed Lucene index.
Startup health check
Startup health check controls whether the background workers automatically inspect Lucene indexes when workers start.
When startup health check is enabled, the worker startup flow runs the Lucene index health checker, stores reports in the health cache, and can rebuild an index when it is missing, corrupted, or empty while database data exists.
When startup health check is disabled, the page can still run manual checks. Use Check all now when you need status immediately without changing the startup setting.
The startup setting is useful when an environment needs to avoid Lucene storage work during startup, or when administrators want to run checks deliberately after the rest of the application is ready.
What each column means
| Column | Meaning |
|---|---|
| Type | The managed entity index: Attribute, Category, User, Product, Company, Facet, or Community. |
| Documents | The number of Lucene documents found during the latest health check. |
| Last check (UTC) | When the latest health check was collected for that row. |
| Directory | Whether the Lucene storage directory could be opened. |
| Index | Whether Lucene index metadata exists in that directory. |
| Healthy | Whether Lucene CheckIndex reported a clean index. |
| Last processed | The last timestamp processed by the queue-backed indexer for that entity type. |
| Notes | The latest health message or a hint explaining why no cached report is available. |
Actions
| Action | Use it when | What it does |
|---|---|---|
| Check | You need current diagnostics. | Runs a Lucene health check and updates the cached report shown in the table. |
| Refresh | Search results are stale after ordinary data changes. | Queues an incremental refresh intent for the background indexer. |
| Rebuild | The index is missing, corrupted, structurally outdated, or stale after a schema/index-field change. | Recreates the selected index through the guarded rebuild path. |
| Optimize | The index is healthy but has accumulated many segments after heavy indexing. | Runs Lucene segment optimization. Schedule this during quieter periods. |
The toolbar actions run the same command for every managed index. The per-row actions affect only that row.
Recommended workflow
- Use Check all now to collect fresh status.
- If an index is healthy and has the expected document count, no action is needed.
- If the index is healthy but data is stale, use Refresh and let the background worker process the queue.
- After a refresh finishes, run Check again to confirm the document count and health state.
- If the index is missing, corrupted, or still wrong after refresh, use Rebuild for the affected type.
- Use Optimize only as maintenance after heavy indexing, not as a repair for missing data.
Search behavior and data safety
Lucene is a read-optimized projection of Actualog data. It helps the application find candidate records quickly, but authoritative business rules remain in the database and application services.
For product discovery, Actualog can keep internal products in Lucene for management search while public search results are still checked against database visibility before users see them. A stale index should not be treated as the final authority for permissions or publication state.
Related pages
- Help Knowledge builds the knowledge index that Hex uses for answers from Help Content.
- AI Services configures semantic search and AI provider availability.