This guide is a quick lookup matrix for:
Umbraco:CMS:Examine:LuceneDirectoryFactoryUmbraco:CMS:Hosting:LocalTempStorageLocation
- Examine & indexing:
https://docs.umbraco.com/umbraco-cms/reference/searching/examine - Examine settings (Lucene directory factories):
https://docs.umbraco.com/umbraco-cms/reference/configuration/examinesettings - Hosting & temp storage:
https://docs.umbraco.com/umbraco-cms/reference/configuration/hostingsettings - Load balancing guidance:
https://docs.umbraco.com/umbraco-cms/fundamentals/setup/server-setup/load-balancing
- On-prem single instance:
Default/Default - Azure App Service:
EnvironmentTemp+ (SyncedTemp...for single/admin,Temp...for public scale-out) - On-prem load balanced: usually
EnvironmentTemp+Temp...on CD (local indexes per node)
Understanding these settings is critical because they directly impact:
Lucene indexes rely on file locks. If multiple nodes attempt to write to
the same physical directory (shared or replicated TEMP), you risk:
- File locking exceptions
- Corrupt indexes
- Random search failures
- Performance degradation
Keeping indexes local per node avoids cross-machine locking conflicts.
On Azure App Service:
- The machine can be recycled at any time.
- The
%TEMP%directory is local to the instance. - Local disk may be cleared on restart or scale operations.
Using SyncedTempFileSystemDirectoryFactory ensures:
- Index runs in fast local temp storage
- Index is synced back to
umbraco/Data/TEMP/ExamineIndexes - Index can be restored after app restart
Without this, indexes may rebuild frequently, increasing cold start time.
In CM + CD setups:
- CM writes and rebuilds indexes.
- CD nodes should avoid syncing indexes back if storage is shared or replicated.
- Each CD should ideally maintain its own local index copy.
This prevents file replication loops and locking conflicts.
Scenario LuceneDirectoryFactory LocalTempStorageLocation Notes / rationale
1) On-prem, single Default Default Simple setup. Indexes live under
instance (CM+CD in same umbraco/Data/TEMP/ExamineIndexes.
instance)
2) Azure App Service, SyncedTempFileSystemDirectoryFactory EnvironmentTemp Index runs from machine temp and is
single instance (CM+CD synced back to disk for restore after
in same instance) recycle.
3) Azure App Service Admin: EnvironmentTemp Admin single instance, Public
"load-balanced-ish" SyncedTempFileSystemDirectoryFactory scalable.
Public: TempFileSystemDirectoryFactory
4) On-prem load CM: EnvironmentTemp Avoid shared index locking issues.
balanced (CM + multiple SyncedTempFileSystemDirectoryFactory
CD) CD: TempFileSystemDirectoryFactory
{
"Umbraco": {
"CMS": {
"Hosting": { "LocalTempStorageLocation": "Default" },
"Examine": { "LuceneDirectoryFactory": "Default" }
}
}
}{
"Umbraco": {
"CMS": {
"Hosting": { "LocalTempStorageLocation": "EnvironmentTemp" },
"Examine": { "LuceneDirectoryFactory": "SyncedTempFileSystemDirectoryFactory" }
}
}
}Admin:
{
"Umbraco": {
"CMS": {
"Hosting": { "LocalTempStorageLocation": "EnvironmentTemp" },
"Examine": { "LuceneDirectoryFactory": "SyncedTempFileSystemDirectoryFactory" }
}
}
}Public:
{
"Umbraco": {
"CMS": {
"Hosting": { "LocalTempStorageLocation": "EnvironmentTemp" },
"Examine": { "LuceneDirectoryFactory": "TempFileSystemDirectoryFactory" }
}
}
}CM:
{
"Umbraco": {
"CMS": {
"Hosting": { "LocalTempStorageLocation": "EnvironmentTemp" },
"Examine": { "LuceneDirectoryFactory": "SyncedTempFileSystemDirectoryFactory" }
}
}
}CD:
{
"Umbraco": {
"CMS": {
"Hosting": { "LocalTempStorageLocation": "EnvironmentTemp" },
"Examine": { "LuceneDirectoryFactory": "TempFileSystemDirectoryFactory" }
}
}
}When in doubt:
- Never share Lucene index directories between nodes.
- Prefer local temp storage per machine.
- Only sync back to disk when you need persistence across restarts (Azure single/admin).