The best way to manage a large number of indices is to design your architecture so the number of indices doesn’t grow as your user base or usage increases.
To protect performance and application stability, Algolia enforces a built-in limit of 1,000 indices per application. If your use case approaches or exceeds this limit, you have two common options.
Option 1: Consolidate indices using attributes and filters
Instead of creating separate indices for each segment (for example, one index per store, tenant, or site), store that segment value as an attribute and filter on it at query time.
Example (one index per store):
Index name: Store 123
Example record:
{
"name": "Bread",
"price": 3.99
}
Recommended approach (one shared index with a store attribute):
Index name: All Stores
Example record:
{
"name": "Bread",
"price": 3.99,
"stores": ["Store 123", "Store 234", "Store 345"]
}
Then, each store-specific search experience applies a filter at query time, for example:
filters: "stores:Store 123"
This approach can also reduce the total number of records if multiple stores share the same products, because the same record can be reused across stores.
Option 2: Use multiple Algolia applications
If you truly need more than 1,000 indices, you can create an additional Algolia application and distribute indices across applications.
In this setup, your implementation must select the correct Application ID (and corresponding API key strategy) based on which index you need to query.