> ## Documentation Index
> Fetch the complete documentation index at: https://algolia.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Understanding replicas

> What replicas are and how to handle them.

export const Records = () => <Tooltip tip="A record is a searchable object in an Algolia index. Each record consists of named attributes." cta="Algolia records" href="/doc/guides/sending-and-managing-data/prepare-your-data#algolia-records">
    records
  </Tooltip>;

export const Index = () => <Tooltip tip="An Algolia index is a searchable dataset that consists of records and configuration settings. These settings define how the records are searched and ranked.">
    index
  </Tooltip>;

Algolia has one ranking formula per <Index />.
Every index has a unique sorting strategy but you can't change it at query time.
This is because pre-sorting during indexing instead of at query time leads to a considerable performance boost.

**The key use of replica indices is they let you provide different rankings for the same data.**

Algolia lets you automatically replicate the content of one index (the primary) onto other indices (standard and virtual replicas) and synchronize content changes.

## Standard and virtual replicas

Standard or virtual replicas are optimized for different use cases:

* [**Exhaustive sorting**](/doc/guides/managing-results/refine-results/sorting/how-to/sort-by-attribute).
  Use standard replicas if you want to show everything that matches,
  strictly sorted by a chosen attribute.
  For example, on a news site sort articles by publication date.
* [**Relevant sorting**](/doc/guides/managing-results/refine-results/sorting/in-depth/relevant-sort).
  Use virtual replicas to prioritize relevant results while still incorporating the sorting preference for the selected attribute.
  For example, searching for "notebook" should show laptops first, not notebook accessories.

<Callout icon="credit-card" color="#c084fc">
  This feature isn't available on every plan.
  Refer to your [pricing plan](https://www.algolia.com/pricing) to see if it's included.
</Callout>

### Similarities

* You can [search a replica index](/doc/guides/managing-results/refine-results/sorting/how-to/search-in-a-replica-index) as you would any primary index.
* You can't add, update, or delete <Records /> in replica indices.
* Both replica types synchronize with any updates made to records in the primary index. Every time you add, update, or delete records in your primary index, your replica is automatically modified. You can't alter this automatic data synchronization.

#### Index settings

Replicas start with the same settings as their primary index, but you can change them.
For example, to sort:

* By price
* In ascending order
* In descending order
* By most viewed

Algolia applies one sorting strategy to each index.

You can only sort by attributes with **boolean or numerical values**.
If you want to sort by dates, [convert the dates to Unix timestamps](/doc/guides/managing-results/refine-results/sorting/how-to/sort-an-index-by-date).

To keep replica settings in sync with your primary index, set the primary index's `forwardToReplicas` parameter to `true` with the [`setSettings`](/doc/libraries/sdk/v1/methods/set-settings) method.

### Differences

|                                                                                              | Standard replicas                                                                                                                                                   | Virtual replicas                                                                                                                                                                        |
| -------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Records**                                                                                  | [Increases](/doc/guides/managing-results/refine-results/sorting/in-depth/replicas-impact-on-pricing) the number of records since it's a *copy* of its primary index | Doesn't increase the number of records since it's just a *view* of its primary index. It does slightly increase the primary index's *size* (but by less than 10 MB per million records) |
| **Usage**                                                                                    | Optimized for exhaustive sorting                                                                                                                                    | Optimized for relevant sorting                                                                                                                                                          |
| **Number of replicas per index**                                                             | Unlimited                                                                                                                                                           | 20                                                                                                                                                                                      |
| **Supported index settings**                                                                 | All                                                                                                                                                                 | [A subset](#supported-index-settings-for-virtual-replicas)                                                                                                                              |
| **Synonyms**                                                                                 | Supports all synonym types                                                                                                                                          | Supports most synonym types, except [placeholders](/doc/guides/managing-results/optimize-search-results/adding-synonyms#placeholders)                                                   |
| **[API response](/doc/rest-api/search/search-single-index) that returns the number of hits** | `nbHits`                                                                                                                                                            | `nbSortedHits`                                                                                                                                                                          |

## Manage replicas

For more information about managing replica indices, see:

* [Create a replica index](/doc/guides/managing-results/refine-results/sorting/how-to/creating-replicas)
* [Manage multiple indices](/doc/guides/managing-results/refine-results/sorting/how-to/set-settings-and-forward-to-replicas)
* [Delete replica indices](/doc/guides/managing-results/refine-results/sorting/how-to/deleting-replicas)

## Supported index settings for virtual replicas

Virtual replicas support a *subset* of the index settings.

### Supported settings

* [`advancedSyntax`](/doc/api-reference/api-parameters/advancedSyntax)
* [`advancedSyntaxFeatures`](/doc/api-reference/api-parameters/advancedSyntaxFeatures)
* [`allowTyposOnNumericTokens`](/doc/api-reference/api-parameters/allowTyposOnNumericTokens)
* [`alternativesAsExact`](/doc/api-reference/api-parameters/alternativesAsExact)
* [`aroundPrecision`](/doc/api-reference/api-parameters/aroundPrecision)
* [`attributeCriteriaComputedByMinProximity`](/doc/api-reference/api-parameters/attributeCriteriaComputedByMinProximity)
* [`attributesToHighlight`](/doc/api-reference/api-parameters/attributesToHighlight)
* [`attributesToRetrieve`](/doc/api-reference/api-parameters/attributesToRetrieve)
* [`attributesToSnippet`](/doc/api-reference/api-parameters/attributesToSnippet)
* [`distinct`](/doc/api-reference/api-parameters/distinct)
* [`enablePersonalization`](/doc/api-reference/api-parameters/enablePersonalization)
* [`enableRules`](/doc/api-reference/api-parameters/enableRules)
* [`exactOnSingleWordQuery`](/doc/api-reference/api-parameters/exactOnSingleWordQuery)
* [`highlightPostTag`](/doc/api-reference/api-parameters/highlightPostTag)
* [`highlightPreTag`](/doc/api-reference/api-parameters/highlightPreTag)
* [`hitsPerPage`](/doc/api-reference/api-parameters/hitsPerPage)
* [`ignorePlurals`](/doc/api-reference/api-parameters/ignorePlurals)
* [`maxFacetHits`](/doc/api-reference/api-parameters/maxFacetHits)
* [`maxValuesPerFacet`](/doc/api-reference/api-parameters/maxValuesPerFacet)
* [`minProximity`](/doc/api-reference/api-parameters/minProximity)
* [`minWordSizefor1Typo`](/doc/api-reference/api-parameters/minWordSizefor1Typo)
* [`minWordSizefor2Typos`](/doc/api-reference/api-parameters/minWordSizefor2Typos)
* [`paginationLimitedTo`](/doc/api-reference/api-parameters/paginationLimitedTo)
* [`queryLanguages`](/doc/api-reference/api-parameters/queryLanguages)
* [`queryType`](/doc/api-reference/api-parameters/queryType)
* [`removeStopWords`](/doc/api-reference/api-parameters/removeStopWords)
* [`replaceSynonymsInHighlight`](/doc/api-reference/api-parameters/replaceSynonymsInHighlight)
* [`responseFields`](/doc/api-reference/api-parameters/responseFields)
* [`restrictHighlightAndSnippetArrays`](/doc/api-reference/api-parameters/restrictHighlightAndSnippetArrays)
* [`snippetEllipsisText`](/doc/api-reference/api-parameters/snippetEllipsisText)
* [`sortFacetValuesBy`](/doc/api-reference/api-parameters/sortFacetValuesBy)
* [`typoTolerance`](/doc/api-reference/api-parameters/typoTolerance)
* [`unretrievableAttributes`](/doc/api-reference/api-parameters/unretrievableAttributes)

### Unsupported settings

You can't change the following parameters for virtual indices.
Instead, change them on the corresponding primary index or create a standard replica.

* [`attributeForDistinct`](/doc/api-reference/api-parameters/attributeForDistinct)
* [`attributesForFaceting`](/doc/api-reference/api-parameters/attributesForFaceting)
* [`camelCaseAttributes`](/doc/api-reference/api-parameters/camelCaseAttributes)
* [`customNormalization`](/doc/api-reference/api-parameters/customNormalization)
* [`decompoundedAttributes`](/doc/api-reference/api-parameters/decompoundedAttributes)
* [`disableExactOnAttributes`](/doc/api-reference/api-parameters/disableExactOnAttributes)
* [`disablePrefixOnAttributes`](/doc/api-reference/api-parameters/disablePrefixOnAttributes)
* [`disableTypoToleranceOnAttributes`](/doc/api-reference/api-parameters/disableTypoToleranceOnAttributes)
* [`disableTypoToleranceOnWords`](/doc/api-reference/api-parameters/disableTypoToleranceOnWords)
* [`indexLanguages`](/doc/api-reference/api-parameters/indexLanguages)
* [`keepDiacriticsOnCharacters`](/doc/api-reference/api-parameters/keepDiacriticsOnCharacters)
* [`numericAttributesForFiltering`](/doc/api-reference/api-parameters/numericAttributesForFiltering)
* [`optionalWords`](/doc/api-reference/api-parameters/optionalWords)
* [`ranking`](/doc/api-reference/api-parameters/ranking)
* [`searchableAttributes`](/doc/api-reference/api-parameters/searchableAttributes)
* [`separatorsToIndex`](/doc/api-reference/api-parameters/separatorsToIndex)
* [`userData`](/doc/api-reference/api-parameters/userData)
