Learn about Algolia’s classic infrastructure that runs on bare-metal servers.
Algolia’s classic infrastructure runs directly on the hardware without virtualization.
This is sometimes called bare metal.When you create a new Algolia with the Free, Grow, and Premium plans,
it’ll be hosted on classic infrastructure.
For more information, see Pricing.
Your application is hosted on a cluster of three identical servers.
This ensures high availability.
If one or two servers go down, your users can still search.
Indexing pauses until all three servers come back online.
For more information see Availability over consistency.Having three copies of your data also makes data recovery easier if there’s a hardware failure.This redundancy guarantees an SLA of 99.99% availability.
All three servers in a cluster have the same data.
To avoid mismatches, Algolia uses the Raft algorithm
so that all servers in a cluster update together.
This way, each server always has the same data without service interruption.
By default, your Algolia application shares a cluster with other applications.
You can request dedicated infrastructure as an add on.
For more information, see Pricing.You can add more servers to your cluster.
This adds capacity to handle search requests,
and reduces network latency if you add servers in a region closer to your users.
For more information, see Distributed Search Network.For more information,
see Large indexing jobs.
If one or two servers go down,
the others will still handle search requests without interruption.
For search, consistency is less important.
As long as one server is able to handle the ,
your users still get search results.
While one server might be unreachable to the other servers within the cluster,
it might still receive requests from the outside.
In that case, the other two servers continue handling requests,
finding consensus among themselves.
On unreachable servers, indexing jobs are queued.
If the third server becomes reachable again, it can synchronize with the other two.
Availability guarantees constant access to your data without service outage.
Consistency guarantees the same data everywhere at the same time.
For example, all users get the same search results at once.
For more information, see CAP theorem and eventual consistency.Algolia chooses availability over consistency.Because when users search, they should always get results.
This is more important than small differences between searches.
Under normal load, synchronizing data between three servers takes seconds or less,
so that you only infrequently experience data discrepancies.That’s why all three servers in a cluster respond to search requests,
so that at least one server is always available.
Say Algolia delayed search requests until all three servers matched (consistency).
Searches could then face long delays or stop responding.
When you create new Algolia applications with classic infrastructure,
you can choose a region where your new application will be hosted.
Some regions aren’t available for all plans.
For more details, see Pricing.
Region
Notes
US-East (Virginia)
2 different Equinix data centers in Ashburn & COPT DC-6 in Manassas (3 independent, autonomous systems
US-West (California)
3 different Equinix data centers in San Jose (3 independent, autonomous systems)
US-Central (Texas)
2 different data centers in Dallas (2 independent, autonomous systems)
Europe (France)
4 different data centers in Roubaix, 2 different data centers in Strasbourg, and 1 data center in Gravelines
Europe (Netherlands)
DSN only
4 different data centers around Amsterdam
Europe (Germany)
7 different data centers in Falkenstein and 1 data center in Frankfurt (2 independent, autonomous systems
Europe (UK)
2 different data centers in London (2 independent, autonomous systems)
Canada
4 different data centers in Beauharnois
Middle East
DSN only
1 data center in Dubai
Singapore
2 different data centers in Singapore (2 independent, autonomous systems)
Brazil
3 different data centers around São Paulo (2 independent, autonomous systems)
Japan
1 data center in Tokyo and 1 data center in Osaka
Australia
3 data centers in Sydney (2 independent, autonomous systems)
India
1 data center in Noida
Hong Kong
2 different data centers (2 independent, autonomous systems)
South Africa
2 data centers in Johannesburg (2 independent, autonomous systems)
Last modified on September 16, 2026
Was this page helpful?
{"docsConfig":{"theme":"aspen","$schema":"https://mintlify.com/docs.json","name":"Algolia","description":"Build search, discovery, and AI experiences with Algolia. Guides, API references, libraries, UI components, and integrations for your stack.","colors":{"primary":"#3970ff","light":"#3970ff","dark":"#003DFF"},"logo":{"light":"https://mintcdn.com/algolia/kiecJp3hu-WXhj-3/logo/light.svg?fit=max\u0026auto=format\u0026n=kiecJp3hu-WXhj-3\u0026q=85\u0026s=bf613e260ca94c0eb23384e6c0d5c77f","dark":"https://mintcdn.com/algolia/kiecJp3hu-WXhj-3/logo/dark.svg?fit=max\u0026auto=format\u0026n=kiecJp3hu-WXhj-3\u0026q=85\u0026s=31a97f60063c111253c518bc0c638e70","href":"/doc"},"favicon":"https://mintcdn.com/algolia/ApgdWRCFtd9v2oPX/favicon.png?fit=max\u0026auto=format\u0026n=ApgdWRCFtd9v2oPX\u0026q=85\u0026s=91df7c93abadfb122ffc8e0f78cc2dc8","api":{"playground":{"display":"simple"},"examples":{"languages":["curl","csharp","dart","go","java","javascript","kotlin","php","python","ruby","scala","swift"],"autogenerate":false}},"navbar":{"links":[{"href":"https://dashboard.algolia.com/users/sign_in","label":"Log in"}],"primary":{"type":"button","label":"Create account","href":"https://www.algolia.com/users/sign_up"}},"footer":{"socials":{"linkedin":"https://www.linkedin.com/company/algolia","x":"https://twitter.com/algolia","discord":"https://alg.li/discord","youtube":"https://www.youtube.com/channel/UCTNkiq-SO8hay1PRx-it9Cw","website":"https://www.algolia.com"},"links":[{"items":[{"label":"Support","href":"https://support.algolia.com/hc/en-us"},{"label":"Glossary","href":"/doc/glossary"},{"label":"Privacy policy","href":"https://www.algolia.com/policies/privacy"},{"label":"Cookie settings","href":"https://www.algolia.com"}]}]},"seo":{"metatags":{"canonical":"https://www.algolia.com"},"organization":{"id":"https://www.algolia.com/#organization","name":"Algolia","url":"https://www.algolia.com","sameAs":["https://www.linkedin.com/company/algolia/","https://github.com/algolia","https://x.com/algolia","https://www.youtube.com/channel/UCTNkiq-SO8hay1PRx-it9Cw"]}},"fonts":{"heading":{"family":"Sora"}},"icons":{"library":"lucide"},"styling":{"eyebrows":"section","codeblocks":"system","latex":true},"integrations":{"segment":{"key":"cKQbv9nMHIUgdWswDLG0c3UdiUgBaUmA"}},"contextual":{"options":["copy","view","chatgpt","claude","perplexity"],"display":"header"},"metadata":{"timestamp":true},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"algolia","hasAudioNarration":false,"actualSubdomain":"algolia","customDomains":["www.algolia.com"],"gitSource":{"type":"github","owner":"algolia","repo":"docs-new","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"feedback":{"thumbs":true,"edits":true,"issues":true,"agentFeedback":false},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"REMOVE_BRANDING":{"status":"ENABLED"},"CONTEXTUAL_FEEDBACK":{"status":"ENABLED"},"CODE_SNIPPET_FEEDBACK":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6af5c625483e41d0aa573dc2","clientVersion":"0.0.4111","searchFilterCounts":[{"language":"default","tag":"Libraries and tools","count":618},{"language":"default","tag":"Guides","count":584},{"language":"default","tag":"API clients","count":407},{"language":"default","tag":"Search and Discovery platform","count":406},{"language":"default","tag":"API reference","count":403},{"language":"default","tag":"UI libraries","count":290},{"language":"default","tag":"Reference","count":282},{"language":"default","tag":"Build Search UI","count":235},{"language":"default","tag":"Search","count":187},{"language":"default","tag":"React InstantSearch","count":169}]},"assistantConfig":{},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-rbac-roles","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":true},"customCss":[{"filePath":"style.css","content":":root{--radius: 0.5rem;--rounded-2xl: var(--radius);--rounded-xl: var(--radius);--rounded-lg: var(--radius);--rounded-md: var(--radius);--rounded-full: var(--radius);--icon-stroke: #000000;--border-color: rgb(var(--gray-200) / 0.5);--font-weight-headings-custom: 700;--docsearch-background-color: #f5f6f7;--filters-token-string-color: #b46900;--filters-token-error-color: #d7263d;--filters-token-paren-color: #005cc5;--filters-token-num-color: #6f42c1;--filters-token-operator-color: #22863a;--docsearch-sidepanel-border: var(--border-color);--docsearch-sidepanel-background: rgb(244, 246, 250);--docsearch-sidepanel-background-dark: #fff;--docsearch-hit-background-muted: rgb(247, 247, 248);--docsearch-searchbox-focus-background: #fff}:root.dark,html[data-theme=dark]{--icon-stroke: #ffffff;--border-color: rgb(var(--gray-900) / 0.8);--docsearch-background-color: #0a0b11 !important;--docsearch-dropdown-menu-background: #10121e;--docsearch-dropdown-menu-item-hover-background: #0a0b11;--docsearch-hit-color: #e5e7eb;--filters-token-string-color: #ffa657;--filters-token-error-color: #ff6b6b;--filters-token-paren-color: #79c0ff;--filters-token-num-color: #d2a8ff;--filters-token-operator-color: #7ee787;--docsearch-sidepanel-background: rgb(15, 17, 23);--docsearch-sidepanel-background-dark: rgba(11, 13, 17, 1);--docsearch-hit-background-muted: rgb(14, 17, 23);--docsearch-modal-background: #0a0b11;--docsearch-hit-focus-background: rgb(var(--gray-900))}.rounded-\\[0\\.85rem\\]{border-radius:var(--radius)}#banner{background-color:#23263b}#banner a{color:inherit}#background-div{background-color:#f6f6fa}.dark #background-div{background-color:#ffffff;opacity:0.03}#pagination{display:none}.background-lines{fill:#c5c9e0}.dark .background-lines{fill:#ffffff;fill-opacity:0.15}th{text-align:left}.tooltip{user-select:text}.prose a{font-weight:inherit}.prose a strong{font-weight:600}.katex-display>.katex{overflow-y:hidden}.prose a.link[href^=\"http\"]:not([href^=\"https://www.algolia.com/doc\"]){white-space:nowrap}.prose a.link[href^=\"http\"]:not([href^=\"https://www.algolia.com/doc\"])::after{display:inline-block;width:14px;height:14px;margin-left:4px;vertical-align:-2px;content:\"\";background-color:currentColor;-webkit-mask:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E\u003cpath d='M15 3h6v6'/%3E\u003cpath d='M10 14 21 3'/%3E\u003cpath d='M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6'/%3E%3C/svg%3E\") center / contain no-repeat;mask:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E\u003cpath d='M15 3h6v6'/%3E\u003cpath d='M10 14 21 3'/%3E\u003cpath d='M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6'/%3E%3C/svg%3E\") center / contain no-repeat}.prose h2 code,.prose h3 code,.prose h4 code{font-weight:700}.prose table a code{word-break:keep-all}[data-component-part=\"field-content\"]{margin-left:1.5rem}[data-component-part=\"code-block-root\"]{border-radius:var(--radius)}#content-area img{margin-inline:auto;background:transparent!important}#content-area img:not(.no-shadow){box-shadow:0 10px 15px -3px rgb(0 0 0 / 0.1),\n 0 4px 6px -4px rgb(0 0 0 / 0.1)}#content-area video{margin-inline:auto}.video-embed{display:block;width:100%;min-width:0;max-width:var(--video-embed-max-width, 644px);aspect-ratio:16 / 9;height:auto;margin-inline:auto}button+div[aria-hidden=\"true\"]{background-color:#23263b;border-radius:var(--radius);box-shadow:0 0 0 1px #23263b0d, 0 4px 8px -2px #23263b40;color:#fff;padding:.5rem .75rem}#feedback-toolbar button{border-radius:var(--radius)}html.no-overflow{overflow:hidden}body.DocSearch--active{overflow:initial!important}.DocSearch-Container{visibility:hidden;opacity:0;transition:opacity 120ms ease;padding-top:5vh;position:fixed;top:0;left:0;right:0;bottom:0;background-color:rgba(0, 0, 0, 0.1);display:flex;align-items:flex-start;justify-content:center;z-index:200;cursor:initial}.DocSearch-Container.docsearch-ready{visibility:visible;opacity:1}.dark .DocSearch-Form,.dark .DocSearch-SearchBar{background-color:transparent!important}.DocSearch-Dropdown{border-top:1px solid var(--docsearch-subtle-color);scrollbar-color:#9698c3 #f5f6f7;scrollbar-width:thin}.dark .DocSearch-Container{--docsearch-text-color: #c4c7dc}.dark .DocSearch-Dropdown{scrollbar-color:#7f8497 #15172a}.dark .DocSearch-Close{color:#5172FF}.dark .DocSearch-Close svg{color:#5172FF}.dark .DocSearch-MagnifierLabel svg{color:#5172FF}.DocSearch-SidepanelButton.floating{display:none}.dark .DocSearch-Dropdown{border-color:#212139}.dark .DocSearch-Divider{border-color:#212139}.dark .DocSearch-Input{color:white;caret-color:white}.dark .DocSearch-Container{background-color:rgba(0, 0, 0, 0.6)!important}.dark .DocSearch-SearchBar,.dark .DocSearch-Form,.dark .DocSearch-Input{color:#ffffff!important}.dark .DocSearch-Input::placeholder{color:#ffffff!important;opacity:0.9}.dark .DocSearch-Reset,.dark .DocSearch-Reset span,.dark .DocSearch-Reset svg,.dark .DocSearch-Close,.dark .DocSearch-Close svg{color:#5172ff!important;fill:#5172ff!important;stroke:#5172ff!important}.dark .DocSearch-Cancel,.dark .DocSearch-Cancel svg{color:#ffffff!important;fill:#ffffff!important;stroke:#ffffff!important}.dark .DocSearch-MagnifierLabel,.dark .DocSearch-MagnifierLabel svg{color:#5172ff!important;fill:#5172ff!important;stroke:#5172ff!important}.dark .DocSearch-Dropdown{background-color:#0a0b11!important}.dark .DocSearch-Hits mark{background-color:transparent!important;color:#7aa2ff!important}.dark .DocSearch-Hit a{color:#e5e7eb!important;border-color:#1b1e29!important}.dark .DocSearch-Hit[aria-selected=true] .DocSearch-Hit-action,.dark .DocSearch-Hit[aria-selected=true] .DocSearch-Hit-icon{color:#7aa2ff}.dark .DocSearch-Title,.dark .DocSearch-Label{background-color:#0f1117!important}.dark .DocSearch-Title,.dark .DocSearch-Label,.dark .DocSearch-Hit-source{color:#e5e7eb!important}.dark .DocSearch-Footer{background-color:#0f1117!important;border-top:1px solid #1b1e29!important;color:#cbd5e1!important}.DocSearch-Hit--AskAI .DocSearch-AskAiScreen-Response .DocSearch-AskAiScreen-RelatedSources-Item-Link{background:var(--docsearch-hit-background-muted)!important}.DocSearch-Hit-AskAIButton-title-query{color:var(--docsearch-highlight-color)}.dark .DocSearch-Hit-AskAIButton-title-query{color:#7aa2ff!important}.dark .DocSearch-AskAiScreen-Response{color:#f5f6f7!important}.dark .DocSearch-Markdown-Content,.dark .DocSearch-Markdown-Content li{color:#cbd5e1!important}.dark .DocSearch-Markdown-Content a{color:#7aa2ff!important}.dark .DocSearch-AskAiScreen-RelatedSources-Item-Link{color:#cbd5e1}.dark .DocSearch-AskAiScreen-Response .DocSearch-CodeSnippet .DocSearch-CodeSnippet-CopyButton{background-color:#0f1117!important;color:#cbd5e1!important}.dark .DocSearch-AskAiScreen-Response .DocSearch-CodeSnippet pre{background-color:#0f1117!important;color:#e5e7eb!important}.dark .DocSearch-AskAiScreen-Response .DocSearch-CodeSnippet pre code{background-color:transparent!important;color:inherit!important}.DocSearch-Modal{position:relative;overflow:hidden;width:700px;max-width:90vw;border-radius:var(--radius);box-shadow:0 4px 12px rgba(0, 0, 0, 0.15)}.docsearch-expanded .DocSearch-Modal{max-height:auto;border-radius:var(--radius);box-shadow:0 25px 50px -12px rgba(0, 0, 0, 0.25)}@media (max-width: 768px){.DocSearch-Container{padding-top:0}.DocSearch-Modal{width:100vw;max-width:100vw;border-radius:var(--radius)}.docsearch-expanded .DocSearch-Modal{max-height:100vh;border-radius:var(--radius)}.DocSearch-Dropdown{height:calc(100vh - var(--docsearch-footer-height) - var(--docsearch-searchbox-height, var(--docsearch-searchbox-initial-height)))}.docsearch-sidepanel-toggle .docsearch-sidepanel-label,.docsearch-sidepanel-toggle .docsearch-sidepanel-shortcut{display:none}.docsearch-sidepanel-toggle{padding:0 0.5rem}}@media (min-width: 769px){.docsearch-sidepanel-toggle{border:1px solid transparent;box-shadow:0 0 0 1px rgba(156, 163, 175, 0.3)}.docsearch-sidepanel-toggle:hover{box-shadow:0 0 0 1px rgba(75, 85, 99, 0.3)}html.dark .docsearch-sidepanel-toggle{box-shadow:0 0 0 1px rgba(75, 85, 99, 0.3)}html.dark .docsearch-sidepanel-toggle:hover{box-shadow:0 0 0 1px rgba(107, 114, 128, 0.3)}}.DocSearch-Sidepanel-Header{height:3.0rem}.DocSearch-Sidepanel-Container.inline.side-right{border-bottom-left-radius:0;border-left:1px solid var(--docsearch-sidepanel-border);border-top-left-radius:0}.DocSearch-Sidepanel-Container{box-shadow:none}.DocSearch-MCP-Callout{font-size:0.875em;display:flex;align-items:center;gap:0.25rem;color:var(--docsearch-text-color);padding-inline:0.25rem 0.5rem;padding-block:0.25rem;border-radius:var(--docsearch-border-radius);background-color:var(--docsearch-hit-focus-background);min-block-size:1.5rem}.DocSearch-MCP-Callout:hover,.DocSearch-MCP-Callout:focus-visible{outline:2px solid var(--docsearch-highlight-color)}.DocSearch-MCP-Callout svg{height:1rem;width:1rem;color:var(--docsearch-highlight-color);margin-block-start:1px}html.dark #filter-validator{background-color:var(--shiki-dark-bg)}#filter-validator{.Token_EOF {\n color: transparent;\n }\n\n .Token_Empty_Str,\n .Token_Incomplete_Str,\n .Token_String,\n .Token_Term {\n color: var(--filters-token-string-color);\n }\n\n .Token_Error {\n color: var(--filters-token-error-color);\n }\n\n .Token_Open_Paren,\n .Token_Close_Paren,\n .Token_Open_Angled_Bracket,\n .Token_Close_Angled_Bracket,\n .Token_Comma,\n .Token_Facet_Separator {\n color: var(--filters-token-paren-color);\n }\n\n .Token_Num {\n color: var(--filters-token-num-color);\n }\n\n .Token_OR,\n .Token_AND,\n .Token_NOT,\n .Token_Operator,\n .Token_Range {\n color: var(--filters-token-operator-color);\n }}.nav-tag-pill-text{text-transform:uppercase;letter-spacing:1px}[data-group-tag]>button>div{display:flex;align-items:center;gap:0.5rem}.steps .step .prose ol{list-style-type:lower-alpha}.no-bullets ul{margin-top:1rem;padding-left:0;margin-left:0;list-style:none}@layer components{.prose .no-bullets li{margin:0.5rem 0;margin-left:0!important;padding-left:0!important;list-style:none}}.no-bullets a.link{border-bottom-color:transparent}.no-bullets a.link:hover,.no-bullets a.link:focus-visible{border-bottom-color:rgb(57, 112, 255)}.no-bullets li::before{content:none!important}.homepage-hero{background-color:#23263b;background-image:linear-gradient(\n 90deg,\n rgba(12, 30, 69, 0.82) 0%,\n rgba(12, 30, 69, 0.72) 34%,\n rgba(12, 30, 69, 0.58) 58%,\n rgba(12, 30, 69, 0.44) 100%\n ),\n url(\"/mintlify-assets/hero.png\");background-position:center, 72% center;background-repeat:no-repeat;background-size:cover}@supports (background-image: image-set(url(\"/mintlify-assets/hero.webp\") type(\"image/webp\") 1x)){.homepage-hero{background-image:linear-gradient(\n 90deg,\n rgba(12, 30, 69, 0.82) 0%,\n rgba(12, 30, 69, 0.72) 34%,\n rgba(12, 30, 69, 0.58) 58%,\n rgba(12, 30, 69, 0.44) 100%\n ),\n image-set(\n url(\"/mintlify-assets/hero.webp\") type(\"image/webp\") 1x,\n url(\"/mintlify-assets/hero.png\") type(\"image/png\") 1x\n )}}@supports (background-image: -webkit-image-set(url(\"/mintlify-assets/hero.webp\") type(\"image/webp\") 1x)){.homepage-hero{background-image:linear-gradient(\n 90deg,\n rgba(12, 30, 69, 0.82) 0%,\n rgba(12, 30, 69, 0.72) 34%,\n rgba(12, 30, 69, 0.58) 58%,\n rgba(12, 30, 69, 0.44) 100%\n ),\n -webkit-image-set(\n url(\"/mintlify-assets/hero.webp\") type(\"image/webp\") 1x,\n url(\"/mintlify-assets/hero.png\") type(\"image/png\") 1x\n )}}.homepage-hero-cta{display:inline-flex;align-items:center;justify-content:center;gap:0;padding:0.5rem 0.875rem;border-radius:var(--radius);background:linear-gradient(220deg, rgb(69, 122, 255) 0%, rgb(30, 89, 255) 60.16%);color:#fff!important;font-family:Sora, sans-serif;font-size:0.875rem;font-weight:700;line-height:1.5rem;letter-spacing:0.28px;text-decoration:none;transition:all 150ms ease}.homepage-hero-cta:hover{background:linear-gradient(138deg, rgba(118, 160, 255, 0.7) 0%, rgba(0, 61, 255, 0.7) 25.08%, rgba(151, 71, 255, 0.7) 56.38%, rgba(118, 160, 255, 0.7) 100%), rgb(0, 61, 255);color:#fff!important}@media (min-width: 1024px){.homepage-hero-cta{padding:0.75rem 1.25rem;font-size:1rem;letter-spacing:0.32px}}.sig-param-link{color:inherit;text-decoration:underline;text-decoration-style:dotted;text-decoration-thickness:1px;text-underline-offset:3px;text-decoration-color:color-mix(in srgb, currentColor 45%, transparent);cursor:pointer;border-radius:2px;transition:text-decoration-color 120ms ease, text-decoration-thickness 120ms ease}.sig-param-link:hover,.sig-param-link:focus-visible,.line:has(.sig-param-link:hover) .sig-param-link,.line:has(.sig-param-link:focus-visible) .sig-param-link{text-decoration-style:solid;text-decoration-thickness:2px;text-decoration-color:currentColor;outline:none}.mint-flavor-switcher-slot{min-height:2.75rem;margin:0.25rem 0 1.5rem}.mint-flavor-switcher-slot .mint-flavor-switcher{margin:0}"}],"page":{"pagePath":"doc/guides/scaling/infrastructure/classic/servers-clusters","slug":"/doc/guides/scaling/infrastructure/classic/servers-clusters","pageMetadata":{"title":"Servers and clusters","description":"Learn about Algolia's classic infrastructure that runs on bare-metal servers.","public":true,"subtype":"Guide","href":"/doc/guides/scaling/infrastructure/classic/servers-clusters"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Learn about Algolia’s classic infrastructure that runs on bare-metal servers.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];const SearchRequest=()=>{const{Tooltip}=_provideComponents()||{};if(!Tooltip)_missingMdxReference(`Tooltip`,true);return _jsx(Tooltip,{tip:`A search request is a single HTTP call to the Algolia Search API that can run one or more search operations. It can include multiple queries, for example, when querying several indices at once.`,children:`search request`})};const Application=()=>{const{Tooltip}=_provideComponents()||{};if(!Tooltip)_missingMdxReference(`Tooltip`,true);return _jsx(Tooltip,{tip:`An Algolia application is a self-contained environment with its own indices, configuration, and API keys. Applications don't share data or settings with each other.`,children:`application`})};function _createMdxContent(props){const _components={a:`a`,li:`li`,p:`p`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{Heading,Table,_MdxComponentBoundary}=_components;if(!Heading)_missingMdxReference(`Heading`,true);if(!Table)_missingMdxReference(`Table`,true);if(!_MdxComponentBoundary)_missingMdxReference(`_MdxComponentBoundary`,true);return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:`Algolia’s classic infrastructure runs directly on the hardware without virtualization.\nThis is sometimes called bare metal.`}),`\n`,_jsxs(_components.p,{children:[`When you create a new Algolia `,_jsx(_MdxComponentBoundary,{name:`Application`,children:_jsx(Application,{})}),` with the Free, Grow, and Premium plans,\nit’ll be hosted on classic infrastructure.\nFor more information, see `,_jsx(_components.a,{href:`https://www.algolia.com/pricing/`,children:`Pricing`}),`.`]}),`\n`,_jsx(Heading,{level:`2`,id:`clusters`,children:`Clusters`}),`\n`,_jsxs(_components.p,{children:[`Your application is hosted on a `,_jsx(_components.strong,{children:`cluster of three identical servers.`}),`\nThis ensures `,_jsx(_components.strong,{children:`high availability`}),`.\nIf one or two servers go down, your users can still search.\nIndexing pauses until all three servers come back online.\nFor more information see `,_jsx(_components.a,{href:`#availability-over-consistency`,children:`Availability over consistency`}),`.`]}),`\n`,_jsx(_components.p,{children:`Having three copies of your data also makes data recovery easier if there’s a hardware failure.`}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`This redundancy guarantees an SLA of 99.99% availability.`})}),`\n`,_jsx(Heading,{level:`3`,id:`resiliency`,children:`Resiliency`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`To increase resiliency`}),` of your clusters,\nAlgolia implements geographical and network redundancies:`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`To prevent incidents, such as fires or floods, from bringing down the entire cluster,\nAlgolia separates the servers into different data centers.`}),`\n`,_jsx(_components.li,{children:`To prevent network failures,\nno server within the same cluster uses the same internet service provider.`}),`\n`]}),`\n`,_jsx(Heading,{level:`3`,id:`consensus`,children:`Consensus`}),`\n`,_jsxs(_components.p,{children:[`All three servers in a cluster have the same data.\nTo avoid mismatches, Algolia uses the `,_jsx(_components.a,{href:`https://raft.github.io/`,children:`Raft algorithm`}),`\nso that all servers in a cluster update together.\nThis way, each server always has the same data without service interruption.`]}),`\n`,_jsx(Heading,{level:`3`,id:`scaling-beyond-clusters`,children:`Scaling beyond clusters`}),`\n`,_jsxs(_components.p,{children:[`By default, your Algolia application shares a cluster with other applications.\nYou can request dedicated infrastructure as an add on.\nFor more information, see `,_jsx(_components.a,{href:`https://www.algolia.com/pricing/`,children:`Pricing`}),`.`]}),`\n`,_jsxs(_components.p,{children:[`You can add more servers to your cluster.\nThis adds capacity to handle search requests,\nand reduces network latency if you add servers in a region closer to your users.\nFor more information, see `,_jsx(_components.a,{href:`/doc/guides/scaling/infrastructure/classic/distributed-search-network-dsn`,children:`Distributed Search Network`}),`.`]}),`\n`,_jsxs(_components.p,{children:[`For more information,\nsee `,_jsx(_components.a,{href:`/doc/guides/scaling/scaling-to-larger-datasets`,children:`Large indexing jobs`}),`.`]}),`\n`,_jsx(Heading,{level:`2`,id:`what-happens-when-a-server-goes-down`,children:`What happens when a server goes down`}),`\n`,_jsx(_components.p,{children:`Servers may fail to respond for a number of reasons:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Temporary network issues`}),`\n`,_jsx(_components.li,{children:`High server load`}),`\n`,_jsx(_components.li,{children:`Hardware failures`}),`\n`]}),`\n`,_jsx(_components.p,{children:`If a server goes down, Algolia handles search and indexing requests differently.`}),`\n`,_jsx(Heading,{level:`3`,id:`search-requests`,children:`Search requests`}),`\n`,_jsxs(_components.p,{children:[`If one or two servers go down,\nthe others will still handle search requests `,_jsx(_components.strong,{children:`without interruption`}),`.\nFor search, consistency is less important.\nAs long as one server is able to handle the `,_jsx(_MdxComponentBoundary,{name:`SearchRequest`,children:_jsx(SearchRequest,{})}),`,\nyour users still get search results.`]}),`\n`,_jsx(Heading,{level:`3`,id:`indexing-requests`,children:`Indexing requests`}),`\n`,_jsxs(_components.p,{children:[`While one server might be unreachable to the other servers within the cluster,\nit might still receive requests from the outside.\nIn that case, the other two servers continue handling requests,\nfinding consensus among themselves.\nOn unreachable servers, `,_jsx(_components.strong,{children:`indexing jobs are queued`}),`.\nIf the third server becomes reachable again, it can synchronize with the other two.`]}),`\n`,_jsx(Heading,{level:`2`,id:`availability-over-consistency`,children:`Availability over consistency`}),`\n`,_jsx(_components.p,{children:`Hosted services need to find a balance between:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Availability`}),` guarantees constant access to your data without service outage.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Consistency`}),` guarantees the same data everywhere at the same time.\nFor example, all users get the same search results at once.`]}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`For more information, see `,_jsx(_components.a,{href:`https://wikipedia.org/wiki/CAP_theorem`,children:`CAP theorem`}),` and `,_jsx(_components.a,{href:`https://wikipedia.org/wiki/Eventual_consistency`,children:`eventual consistency`}),`.`]}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`Algolia chooses availability over consistency.`})}),`\n`,_jsx(_components.p,{children:`Because when users search, they should always get results.\nThis is more important than small differences between searches.\nUnder normal load, synchronizing data between three servers takes seconds or less,\nso that you only infrequently experience data discrepancies.`}),`\n`,_jsx(_components.p,{children:`That’s why all three servers in a cluster respond to search requests,\nso that at least one server is always available.\nSay Algolia delayed search requests until all three servers matched (consistency).\nSearches could then face long delays or stop responding.`}),`\n`,_jsx(Heading,{level:`3`,id:`location-of-algolia-infrastructure-classic`,children:`Location of Algolia infrastructure (classic)`}),`\n`,_jsxs(_components.p,{children:[`When you create new Algolia applications with classic infrastructure,\nyou can choose a region where your new application will be hosted.\nSome regions aren’t available for all plans.\nFor more details, see `,_jsx(_components.a,{href:`https://www.algolia.com/pricing/`,children:`Pricing`}),`.`]}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Region`}),_jsx(_components.th,{}),_jsx(_components.th,{children:`Notes`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsxs(_components.td,{children:[_jsx(_components.strong,{children:`US-East`}),` (Virginia)`]}),_jsx(_components.td,{}),_jsx(_components.td,{children:`2 different Equinix data centers in Ashburn \u0026 COPT DC-6 in Manassas (3 independent, autonomous systems`})]}),_jsxs(_components.tr,{children:[_jsxs(_components.td,{children:[_jsx(_components.strong,{children:`US-West`}),` (California)`]}),_jsx(_components.td,{}),_jsx(_components.td,{children:`3 different Equinix data centers in San Jose (3 independent, autonomous systems)`})]}),_jsxs(_components.tr,{children:[_jsxs(_components.td,{children:[_jsx(_components.strong,{children:`US-Central`}),` (Texas)`]}),_jsx(_components.td,{}),_jsx(_components.td,{children:`2 different data centers in Dallas (2 independent, autonomous systems)`})]}),_jsxs(_components.tr,{children:[_jsxs(_components.td,{children:[_jsx(_components.strong,{children:`Europe`}),` (France)`]}),_jsx(_components.td,{}),_jsx(_components.td,{children:`4 different data centers in Roubaix, 2 different data centers in Strasbourg, and 1 data center in Gravelines`})]}),_jsxs(_components.tr,{children:[_jsxs(_components.td,{children:[_jsx(_components.strong,{children:`Europe`}),` (Netherlands)`]}),_jsx(_components.td,{children:`DSN only`}),_jsx(_components.td,{children:`4 different data centers around Amsterdam`})]}),_jsxs(_components.tr,{children:[_jsxs(_components.td,{children:[_jsx(_components.strong,{children:`Europe`}),` (Germany)`]}),_jsx(_components.td,{}),_jsx(_components.td,{children:`7 different data centers in Falkenstein and 1 data center in Frankfurt (2 independent, autonomous systems`})]}),_jsxs(_components.tr,{children:[_jsxs(_components.td,{children:[_jsx(_components.strong,{children:`Europe`}),` (UK)`]}),_jsx(_components.td,{}),_jsx(_components.td,{children:`2 different data centers in London (2 independent, autonomous systems)`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Canada`})}),_jsx(_components.td,{}),_jsx(_components.td,{children:`4 different data centers in Beauharnois`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Middle East`})}),_jsx(_components.td,{children:`DSN only`}),_jsx(_components.td,{children:`1 data center in Dubai`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Singapore`})}),_jsx(_components.td,{}),_jsx(_components.td,{children:`2 different data centers in Singapore (2 independent, autonomous systems)`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Brazil`})}),_jsx(_components.td,{}),_jsx(_components.td,{children:`3 different data centers around São Paulo (2 independent, autonomous systems)`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Japan`})}),_jsx(_components.td,{}),_jsx(_components.td,{children:`1 data center in Tokyo and 1 data center in Osaka`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Australia`})}),_jsx(_components.td,{}),_jsx(_components.td,{children:`3 data centers in Sydney (2 independent, autonomous systems)`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`India`})}),_jsx(_components.td,{}),_jsx(_components.td,{children:`1 data center in Noida`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Hong Kong`})}),_jsx(_components.td,{}),_jsx(_components.td,{children:`2 different data centers (2 independent, autonomous systems)`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`South Africa`})}),_jsx(_components.td,{}),_jsx(_components.td,{children:`2 data centers in Johannesburg (2 independent, autonomous systems)`})]})]})]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{SearchRequest,Application,default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"codeStyling":"system","config":{},"pageMetadata":{"title":"Servers and clusters","description":"Learn about Algolia's classic infrastructure that runs on bare-metal servers.","public":true,"subtype":"Guide","href":"/doc/guides/scaling/infrastructure/classic/servers-clusters"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Clusters","slug":"clusters","depth":2,"children":[{"title":"Resiliency","slug":"resiliency","depth":3,"children":[]},{"title":"Consensus","slug":"consensus","depth":3,"children":[]},{"title":"Scaling beyond clusters","slug":"scaling-beyond-clusters","depth":3,"children":[]}]},{"title":"What happens when a server goes down","slug":"what-happens-when-a-server-goes-down","depth":2,"children":[{"title":"Search requests","slug":"search-requests","depth":3,"children":[]},{"title":"Indexing requests","slug":"indexing-requests","depth":3,"children":[]}]},{"title":"Availability over consistency","slug":"availability-over-consistency","depth":2,"children":[{"title":"Location of Algolia infrastructure (classic)","slug":"location-of-algolia-infrastructure-classic","depth":3,"children":[]}]}],"codeExamples":{}},"jsLinks":["/_mintlify/custom/algolia/34bdaaeaccaa769c/docsearch.js","/_mintlify/custom/algolia/e18afef8ba6306ba/one-trust.js","/_mintlify/custom/algolia/5a5e6ade8ff45aec/utm-attribution.js","/_mintlify/custom/algolia/a4b9f2f416e55759/iframe-resize.js","/_mintlify/custom/algolia/dbca34a8de6b147e/instantsearch-api-signature-links.js","/_mintlify/custom/algolia/4e6ff31277aab3f2/segment-analytics.js","/_mintlify/custom/algolia/ae5f1d742fc727f6/optinmonster.js"],"subdomain":"algolia","siteName":"Algolia","title":"Servers and clusters - Algolia","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-12T09:15:42.281Z","gitLastModified":"2026-09-16T10:31:26.000Z","originalFileLocation":"doc/guides/scaling/infrastructure/classic/servers-clusters.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Learn about Algolia\u0026#x27;s classic infrastructure that runs on bare-metal servers.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Algolia\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/algolia/pODf0GWwkpqTo2Wx/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/algolia/pODf0GWwkpqTo2Wx/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/algolia/pODf0GWwkpqTo2Wx/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/algolia/pODf0GWwkpqTo2Wx/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/algolia/pODf0GWwkpqTo2Wx/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/algolia/pODf0GWwkpqTo2Wx/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/algolia/pODf0GWwkpqTo2Wx/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/algolia/pODf0GWwkpqTo2Wx/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/algolia/pODf0GWwkpqTo2Wx/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Servers and clusters - Algolia\">\u003cmeta data-mint-head property=\"og:description\" content=\"Learn about Algolia\u0026#x27;s classic infrastructure that runs on bare-metal servers.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Algolia\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://www.algolia.com/doc/guides/scaling/infrastructure/classic/servers-clusters\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://algolia.mintlify.site/_mintlify/api/og/v2?division=Classic\u0026amp;title=Servers+and+clusters\u0026amp;description=Learn+about+Algolia%27s+classic+infrastructure+that+runs+on+bare-metal+servers.\u0026amp;theme=7b696fa6ef3d890ba8a17746\u0026amp;signature=43f003fbe22fce21c7db3e1f7d5b9ddcc5316f1f2103fd8b35d64c925f87db52\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Servers and clusters - Algolia\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Learn about Algolia\u0026#x27;s classic infrastructure that runs on bare-metal servers.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://algolia.mintlify.site/_mintlify/api/og/v2?division=Classic\u0026amp;title=Servers+and+clusters\u0026amp;description=Learn+about+Algolia%27s+classic+infrastructure+that+runs+on+bare-metal+servers.\u0026amp;theme=7b696fa6ef3d890ba8a17746\u0026amp;signature=43f003fbe22fce21c7db3e1f7d5b9ddcc5316f1f2103fd8b35d64c925f87db52\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/algolia/pODf0GWwkpqTo2Wx/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Algolia\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#3970ff\">\u003clink data-mint-head rel=\"canonical\" href=\"https://www.algolia.com/doc/guides/scaling/infrastructure/classic/servers-clusters\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/doc/guides/scaling/infrastructure/classic/servers-clusters.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://www.algolia.com/#organization\",\"name\":\"Algolia\",\"url\":\"https://www.algolia.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/algolia/kiecJp3hu-WXhj-3/logo/light.svg?fit=max\u0026auto=format\u0026n=kiecJp3hu-WXhj-3\u0026q=85\u0026s=bf613e260ca94c0eb23384e6c0d5c77f\"},\"sameAs\":[\"https://www.linkedin.com/company/algolia/\",\"https://github.com/algolia\",\"https://x.com/algolia\",\"https://www.youtube.com/channel/UCTNkiq-SO8hay1PRx-it9Cw\"]},{\"@type\":\"WebSite\",\"@id\":\"https://www.algolia.com#website\",\"name\":\"Algolia\",\"url\":\"https://www.algolia.com\",\"publisher\":{\"@id\":\"https://www.algolia.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://www.algolia.com/doc/guides/scaling/infrastructure/classic/servers-clusters#webpage\",\"url\":\"https://www.algolia.com/doc/guides/scaling/infrastructure/classic/servers-clusters\",\"name\":\"Servers and clusters\",\"description\":\"Learn about Algolia's classic infrastructure that runs on bare-metal servers.\",\"dateModified\":\"2026-09-16T10:31:26.000Z\",\"isPartOf\":{\"@id\":\"https://www.algolia.com#website\"},\"breadcrumb\":{\"@id\":\"https://www.algolia.com/doc/guides/scaling/infrastructure/classic/servers-clusters#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://www.algolia.com/doc/guides/scaling/infrastructure/classic/servers-clusters#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Production and scale\",\"item\":\"https://www.algolia.com/doc/guides/going-to-production/implementation-checklist\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Infrastructure\",\"item\":\"https://www.algolia.com/doc/guides/scaling/infrastructure\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Servers and clusters\",\"item\":\"https://www.algolia.com/doc/guides/scaling/infrastructure/classic/servers-clusters\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://www.algolia.com/doc/guides/scaling/infrastructure/classic/servers-clusters#article\",\"headline\":\"Servers and clusters\",\"name\":\"Servers and clusters\",\"description\":\"Learn about Algolia's classic infrastructure that runs on bare-metal servers.\",\"url\":\"https://www.algolia.com/doc/guides/scaling/infrastructure/classic/servers-clusters\",\"mainEntityOfPage\":{\"@id\":\"https://www.algolia.com/doc/guides/scaling/infrastructure/classic/servers-clusters#webpage\"},\"dateModified\":\"2026-09-16T10:31:26.000Z\",\"publisher\":{\"@id\":\"https://www.algolia.com/#organization\"},\"isPartOf\":{\"@id\":\"https://www.algolia.com#website\"}}]}\u003c/script>","agentPointerHref":"/doc/guides/scaling/infrastructure/classic/servers-clusters.md","siteName":"Algolia","nav":{"global":null,"tabs":[{"tab":"Guides","icon":"book-text","groups":[{"group":" ","hidden":true,"searchable":true,"pages":[{"title":"Algolia documentation | Search API guides, SDK and developer docs","mode":"custom","href":"/doc"},{"title":"Algolia glossary","sidebarTitle":"Glossary","href":"/doc/glossary"}]},{"group":"Get started","icon":"zap","root":{"title":"Get started with Algolia","sidebarTitle":"Get started","href":"/doc/guides/get-started"},"pages":[{"title":"Build your first search experience","href":"/doc/guides/get-started/quickstart"},{"title":"Build with AI agents","href":"/doc/guides/get-started/build-with-ai"},{"title":"Understand the basics","href":"/doc/guides/get-started/concepts"}]},{"group":"Search and Discovery platform","icon":"search","pages":[{"group":"Index your data","root":{"title":"Index your data","href":"/doc/guides/sending-and-managing-data/send-and-update-your-data"},"pages":[{"group":"Prepare your data","root":{"title":"Prepare your data","href":"/doc/guides/sending-and-managing-data/prepare-your-data"},"pages":[{"title":"What is in a record","href":"/doc/guides/sending-and-managing-data/prepare-your-data/in-depth/what-is-in-a-record"},{"title":"Structure your records","href":"/doc/guides/sending-and-managing-data/prepare-your-data/in-depth/prepare-data-in-depth"},{"title":"Create nested attributes","sidebarTitle":"Nested attributes","href":"/doc/guides/sending-and-managing-data/prepare-your-data/how-to/creating-and-using-nested-attributes"},{"title":"Reduce record size","sidebarTitle":"Reducing record size","href":"/doc/guides/sending-and-managing-data/prepare-your-data/how-to/reducing-object-size"},{"title":"Indexing long documents","href":"/doc/guides/sending-and-managing-data/prepare-your-data/how-to/indexing-long-documents"},{"title":"Data cleaning","href":"/doc/guides/sending-and-managing-data/prepare-your-data/in-depth/data-sanitization"}]},{"group":"Send data","pages":[{"title":"Upload a local file","href":"/doc/guides/sending-and-managing-data/send-and-update-your-data/how-to/importing-from-the-dashboard"},{"title":"Send records with an API client","href":"/doc/guides/sending-and-managing-data/send-and-update-your-data/how-to/importing-with-the-api"},{"title":"Sending records in batches","sidebarTitle":"Send records in batches","href":"/doc/guides/sending-and-managing-data/send-and-update-your-data/how-to/sending-records-in-batches"},{"title":"Connectors","sidebarTitle":"Connectors overview","href":"/doc/guides/sending-and-managing-data/send-and-update-your-data/connectors"},{"title":"Import a hosted JSON file","href":"/doc/guides/sending-and-managing-data/send-and-update-your-data/connectors/json"},{"title":"Import a hosted CSV file","href":"/doc/guides/sending-and-managing-data/send-and-update-your-data/connectors/csv"},{"title":"Import from BigQuery","href":"/doc/guides/sending-and-managing-data/send-and-update-your-data/connectors/bigquery"},{"title":"Import from MySQL","href":"/doc/guides/sending-and-managing-data/send-and-update-your-data/connectors/mysql"},{"title":"Import from Elasticsearch","href":"/doc/guides/sending-and-managing-data/send-and-update-your-data/connectors/elasticsearch"},{"title":"Import from Supabase","href":"/doc/guides/sending-and-managing-data/send-and-update-your-data/connectors/supabase"},{"title":"Send records through managed transformations","href":"/doc/guides/sending-and-managing-data/send-and-update-your-data/connectors/push"}]},{"group":"Transform and enrich data","pages":[{"title":"Transform your data with code","sidebarTitle":"Transform your data with code","href":"/doc/guides/sending-and-managing-data/send-and-update-your-data/how-to/transform-your-data-with-code"},{"title":"Transform your data without code","sidebarTitle":"Transform your data without code","href":"/doc/guides/sending-and-managing-data/send-and-update-your-data/how-to/transform-your-data-without-code"},{"title":"AI-assisted transformations","sidebarTitle":"AI-assisted transformations","href":"/doc/guides/sending-and-managing-data/send-and-update-your-data/how-to/ai-assisted-transformations"},{"title":"Enrich your records with Fetch","sidebarTitle":"Enrich your records with Fetch","href":"/doc/guides/sending-and-managing-data/send-and-update-your-data/how-to/enrich-your-records-with-fetch"},{"title":"Post-indexing transformations","sidebarTitle":"Post-indexing transformations","href":"/doc/guides/sending-and-managing-data/send-and-update-your-data/how-to/post-indexing-transformations"},{"title":"Make measures and dimensions searchable","sidebarTitle":"Searchable dimensions","href":"/doc/guides/sending-and-managing-data/prepare-your-data/how-to/dimensional-data"}]},{"group":"Keep data in sync","pages":[{"title":"Data synchronization strategies","sidebarTitle":"Choose a synchronization strategy","href":"/doc/guides/sending-and-managing-data/send-and-update-your-data/in-depth/the-different-synchronization-strategies"},{"title":"Incremental updates","sidebarTitle":"Incremental updates","href":"/doc/guides/sending-and-managing-data/send-and-update-your-data/how-to/incremental-updates"},{"title":"Handling concurrency with versioning","sidebarTitle":"Handling concurrency with versioning","href":"/doc/guides/sending-and-managing-data/send-and-update-your-data/in-depth/handling-concurrency-with-versioning"},{"title":"Wait for indexing to finish","href":"/doc/guides/sending-and-managing-data/send-and-update-your-data/in-depth/index-operations-are-asynchronous"}]},{"group":"Manage indices","pages":[{"title":"Manage indices","sidebarTitle":"Manage indices","href":"/doc/guides/sending-and-managing-data/manage-indices-and-apps/manage-indices"},{"title":"Choose how many indices to use","href":"/doc/guides/sending-and-managing-data/manage-indices-and-apps/manage-indices/concepts/one-or-more-indices"},{"title":"Copy and move indices","sidebarTitle":"Copy or move indices","href":"/doc/guides/sending-and-managing-data/manage-indices-and-apps/manage-indices/how-to/copy-move-indices"},{"title":"Export and import indices and settings","sidebarTitle":"Export and import indices","href":"/doc/guides/sending-and-managing-data/manage-indices-and-apps/manage-indices/how-to/export-import-indices"},{"title":"Delete indices","sidebarTitle":"Delete indices","href":"/doc/guides/sending-and-managing-data/manage-indices-and-apps/manage-indices/how-to/delete-indices"},{"title":"Indices and analytics","sidebarTitle":"Indices and analytics","href":"/doc/guides/sending-and-managing-data/manage-indices-and-apps/manage-indices/concepts/indices-analytics"},{"title":"Generate a sitemap from an Algolia index","sidebarTitle":"Generate a sitemap from an index","href":"/doc/guides/sending-and-managing-data/manage-indices-and-apps/manage-indices/tutorial/generate-sitemap-from-index"}]}]},{"group":"Manage results","pages":[{"group":"Relevance overview","root":{"title":"Relevance overview","href":"/doc/guides/managing-results/relevance-overview"},"pages":[{"title":"The eight ranking criteria","href":"/doc/guides/managing-results/relevance-overview/in-depth/ranking-criteria"},{"title":"Relevance","href":"/doc/guides/managing-results/relevance-overview/in-depth/defining-relevance"},{"title":"Search is more than textual matching","href":"/doc/guides/managing-results/relevance-overview/in-depth/textual-matching"}]},{"group":"Essential steps","pages":[{"group":"Searchable attributes","root":{"title":"Searchable attributes","href":"/doc/guides/managing-results/must-do/searchable-attributes"},"pages":[{"title":"Configure searchable attributes the right way","href":"/doc/guides/managing-results/must-do/searchable-attributes/how-to/configuring-searchable-attributes-the-right-way"}]},{"group":"Custom ranking","root":{"title":"Custom ranking","href":"/doc/guides/managing-results/must-do/custom-ranking"},"pages":[{"title":"Create custom ranking attributes","href":"/doc/guides/managing-results/must-do/custom-ranking/how-to/configure-custom-ranking"},{"title":"Boost or penalize records","href":"/doc/guides/managing-results/must-do/custom-ranking/how-to/boost-or-penalize-some-records"},{"title":"Precision of custom ranking metrics","href":"/doc/guides/managing-results/must-do/custom-ranking/how-to/controlling-custom-ranking-metrics-precision"},{"title":"Bayesian averages in custom ranking","href":"/doc/guides/managing-results/must-do/custom-ranking/how-to/bayesian-average"},{"title":"Custom ranking of results per category","href":"/doc/guides/managing-results/must-do/custom-ranking/how-to/custom-ranking-per-category"}]}]},{"group":"Refine results","pages":[{"group":"Sorting results","pages":[{"title":"Sorting results","sidebarTitle":"Overview","href":"/doc/guides/managing-results/refine-results/sorting"},{"group":"How to","pages":[{"title":"Sort by attribute","href":"/doc/guides/managing-results/refine-results/sorting/how-to/sort-by-attribute"},{"title":"Sort an index by date","href":"/doc/guides/managing-results/refine-results/sorting/how-to/sort-an-index-by-date"},{"title":"Create a replica index","href":"/doc/guides/managing-results/refine-results/sorting/how-to/creating-replicas"},{"title":"Search in a replica index","href":"/doc/guides/managing-results/refine-results/sorting/how-to/search-in-a-replica-index"},{"title":"Rename replica indices","href":"/doc/guides/managing-results/refine-results/sorting/how-to/rename-a-replica-index"},{"title":"Manage multiple indices","href":"/doc/guides/managing-results/refine-results/sorting/how-to/set-settings-and-forward-to-replicas"},{"title":"UI sorting widgets","href":"/doc/guides/managing-results/refine-results/sorting/how-to/use-sorting-ui-widget"}]},{"group":"In depth","pages":[{"title":"Exhaustive sorting","href":"/doc/guides/managing-results/refine-results/sorting/in-depth/exhaustive-sort"},{"title":"Relevant sorting","href":"/doc/guides/managing-results/refine-results/sorting/in-depth/relevant-sort"},{"title":"Understanding replicas","href":"/doc/guides/managing-results/refine-results/sorting/in-depth/replicas"},{"title":"What is the effect of a replica on the number of records?","href":"/doc/guides/managing-results/refine-results/sorting/in-depth/replicas-impact-on-pricing"}]}]},{"group":"Faceting","root":{"title":"Faceting","sidebarTitle":"Overview","href":"/doc/guides/managing-results/refine-results/faceting"},"pages":[{"title":"How to declare attributes for faceting with the API","href":"/doc/guides/managing-results/refine-results/faceting/how-to/declaring-attributes-for-faceting"},{"title":"How to declare attributes for faceting in the dashboard","href":"/doc/guides/managing-results/refine-results/faceting/how-to/declaring-attributes-for-faceting-with-dashboard"}]},{"group":"Filtering","root":{"title":"Filtering","sidebarTitle":"Overview","href":"/doc/guides/managing-results/refine-results/filtering"},"pages":[{"title":"Filter by attributes","href":"/doc/guides/managing-results/refine-results/filtering/how-to/filter-by-attributes"},{"title":"Filters and boolean operators","href":"/doc/guides/managing-results/refine-results/filtering/in-depth/combining-boolean-operators"},{"title":"Filter scoring","href":"/doc/guides/managing-results/refine-results/filtering/in-depth/filter-scoring"},{"title":"Filters and arrays of objects","href":"/doc/guides/managing-results/refine-results/filtering/in-depth/arrays-of-objects"},{"title":"Filters and facet filters","href":"/doc/guides/managing-results/refine-results/filtering/in-depth/filters-and-facetfilters"}]},{"title":"Deduplicate results with distinct","href":"/doc/guides/managing-results/refine-results/grouping"},{"group":"Geo location","pages":[{"title":"Geo location","sidebarTitle":"Overview","href":"/doc/guides/managing-results/refine-results/geolocation"},{"title":"Filter results around a location","href":"/doc/guides/managing-results/refine-results/geolocation/how-to/filter-results-around-a-location"},{"title":"Filter results inside a rectangle","href":"/doc/guides/managing-results/refine-results/geolocation/how-to/filter-results-inside-a-rectangle-area"},{"title":"Filter results inside a polygon","href":"/doc/guides/managing-results/refine-results/geolocation/how-to/filter-results-inside-a-polygonal-area"},{"title":"Geo ranking information","href":"/doc/guides/managing-results/refine-results/geolocation/how-to/geo-ranking-info"},{"title":"How to solve the 180th meridian issue","href":"/doc/guides/managing-results/refine-results/geolocation/how-to/how-to-resolve-180-meridian-issue"},{"title":"Geographical ranking precision","href":"/doc/guides/managing-results/refine-results/geolocation/in-depth/geo-ranking-precision"}]}]},{"group":"Rules","pages":[{"group":"Rules overview","root":{"title":"Rules overview","sidebarTitle":"Overview","href":"/doc/guides/managing-results/rules/rules-overview"},"pages":[{"title":"Implement rules","href":"/doc/guides/managing-results/rules/rules-overview/in-depth/implementing-rules"},{"title":"Add default search parameters with rules","href":"/doc/guides/managing-results/rules/rules-overview/how-to/add-default-search-parameters-with-rules"},{"title":"Customize search results by device","href":"/doc/guides/managing-results/rules/rules-overview/how-to/customize-search-results-by-platform"},{"title":"Rules matching algorithm","href":"/doc/guides/managing-results/rules/rules-overview/in-depth/rule-matching-algorithm"},{"title":"Debug rules","href":"/doc/guides/managing-results/rules/rules-overview/in-depth/debugging-rules"}]},{"group":"Detect intent","pages":[{"title":"Detect intent","sidebarTitle":"Overview","href":"/doc/guides/managing-results/rules/detecting-intent"},{"title":"Add filters based on the query","href":"/doc/guides/managing-results/rules/detecting-intent/how-to/applying-a-custom-filter-for-a-specific-query"},{"title":"Dynamic filtering with Rules","href":"/doc/guides/managing-results/rules/detecting-intent/how-to/applying-a-filter-if-the-query-match-a-facet-value"},{"title":"Enhance search results with query-based rules","href":"/doc/guides/managing-results/rules/detecting-intent/how-to/applying-search-parameters-for-a-specific-query"},{"title":"Detect keywords","href":"/doc/guides/managing-results/rules/detecting-intent/how-to/detecting-keywords"}]},{"group":"Merchandising","root":{"title":"Merchandising","sidebarTitle":"Overview","href":"/doc/guides/managing-results/rules/merchandising-and-promoting"},"pages":[{"title":"Promote results with rules","href":"/doc/guides/managing-results/rules/merchandising-and-promoting/how-to/promote-hits"},{"title":"Keep pinned items together with pin blocks","sidebarTitle":"Pin blocks","href":"/doc/guides/managing-results/rules/merchandising-and-promoting/how-to/pin-blocks"},{"title":"Hide results with rules","href":"/doc/guides/managing-results/rules/merchandising-and-promoting/how-to/how-to-hide-hits"},{"title":"Promote records with optional filters","href":"/doc/guides/managing-results/rules/merchandising-and-promoting/how-to/how-to-promote-with-optional-filters"},{"title":"Redirect searches to a URL","href":"/doc/guides/managing-results/rules/merchandising-and-promoting/how-to/redirects"},{"title":"Add banners","href":"/doc/guides/managing-results/rules/merchandising-and-promoting/how-to/add-banners"},{"title":"Merchandise on empty queries","href":"/doc/guides/managing-results/rules/merchandising-and-promoting/how-to/merchandise-on-empty-query"},{"title":"Multiple consequences","href":"/doc/guides/managing-results/rules/merchandising-and-promoting/how-to/combining-multiple-consequences"},{"title":"Merchandise category pages","href":"/doc/guides/managing-results/rules/merchandising-and-promoting/how-to/merchandising-category-pages"},{"title":"Merchandise facets","href":"/doc/guides/managing-results/rules/merchandising-and-promoting/how-to/merchandising-facets"},{"title":"Add search parameters with JSON","href":"/doc/guides/managing-results/rules/merchandising-and-promoting/how-to/rules-query-parameters"},{"title":"Optional filters","href":"/doc/guides/managing-results/rules/merchandising-and-promoting/in-depth/optional-filters"}]}]},{"group":"Optimize search results","pages":[{"group":"Synonyms","pages":[{"title":"Synonyms","sidebarTitle":"Overview","href":"/doc/guides/managing-results/optimize-search-results/adding-synonyms"},{"title":"Manage synonyms in the dashboard","href":"/doc/guides/managing-results/optimize-search-results/adding-synonyms/how-to/managing-synonyms-from-the-dashboard"}]},{"group":"Typo tolerance","root":{"title":"Typo tolerance","sidebarTitle":"Overview","href":"/doc/guides/managing-results/optimize-search-results/typo-tolerance"},"pages":[{"title":"Prevent typosquatting","href":"/doc/guides/managing-results/optimize-search-results/typo-tolerance/how-to/how-to-prevent-typosquatting"},{"title":"Search in hyphenated attributes","href":"/doc/guides/managing-results/optimize-search-results/typo-tolerance/how-to/how-to-search-in-hyphenated-attributes"},{"title":"Configure typo tolerance","href":"/doc/guides/managing-results/optimize-search-results/typo-tolerance/in-depth/configuring-typo-tolerance"}]},{"group":"Natural languages","pages":[{"title":"Natural languages","sidebarTitle":"Overview","href":"/doc/guides/managing-results/optimize-search-results/handling-natural-languages-nlp"},{"group":"How to","pages":[{"title":"Multilingual search","href":"/doc/guides/managing-results/optimize-search-results/handling-natural-languages-nlp/how-to/multilingual-search"},{"title":"Set an index's query language","href":"/doc/guides/managing-results/optimize-search-results/handling-natural-languages-nlp/how-to/how-to-set-an-index-query-language"},{"title":"Customize stop words","href":"/doc/guides/managing-results/optimize-search-results/handling-natural-languages-nlp/how-to/customize-stop-words"},{"title":"Customize plurals and other declensions","href":"/doc/guides/managing-results/optimize-search-results/handling-natural-languages-nlp/how-to/customize-plurals-and-other-declensions"},{"title":"Customize word segmentation","href":"/doc/guides/managing-results/optimize-search-results/handling-natural-languages-nlp/how-to/customize-segmentation"}]},{"group":"In depth","pages":[{"title":"Language-specific configurations","href":"/doc/guides/managing-results/optimize-search-results/handling-natural-languages-nlp/in-depth/language-specific-configurations"},{"title":"Normalization","href":"/doc/guides/managing-results/optimize-search-results/handling-natural-languages-nlp/in-depth/normalization"},{"title":"Tokenization","href":"/doc/guides/managing-results/optimize-search-results/handling-natural-languages-nlp/in-depth/tokenization"},{"title":"Splitting and concatenation","href":"/doc/guides/managing-results/optimize-search-results/handling-natural-languages-nlp/in-depth/splitting-and-concatenation"},{"title":"Supported languages","href":"/doc/guides/managing-results/optimize-search-results/handling-natural-languages-nlp/in-depth/supported-languages"}]}]},{"group":"Empty or insufficient results","root":{"title":"Empty or insufficient results","href":"/doc/guides/managing-results/optimize-search-results/empty-or-insufficient-results"},"pages":[{"title":"Improve results by removing less-important words","href":"/doc/guides/managing-results/optimize-search-results/empty-or-insufficient-results/in-depth/why-use-remove-words-if-no-results"}]},{"group":"Override engine defaults","pages":[{"title":"Override Algolia defaults","sidebarTitle":"Overview","href":"/doc/guides/managing-results/optimize-search-results/override-search-engine-defaults"},{"title":"Match queries in the middle or end of words","href":"/doc/guides/managing-results/optimize-search-results/override-search-engine-defaults/how-to/how-can-i-make-queries-within-the-middle-of-a-word"},{"title":"Prefix search","href":"/doc/guides/managing-results/optimize-search-results/override-search-engine-defaults/in-depth/prefix-searching"},{"title":"Adjusting the Exact criterion","href":"/doc/guides/managing-results/optimize-search-results/override-search-engine-defaults/in-depth/adjust-exact-settings"}]}]},{"group":"Troubleshooting","pages":[{"title":"Troubleshooting search","href":"/doc/guides/managing-results/troubleshooting/troubleshooting-search"},{"title":"Troubleshooting relevance","href":"/doc/guides/managing-results/troubleshooting/troubleshooting-relevance"}]}]},{"group":"Compose results","root":{"title":"Compositions","href":"/doc/guides/compositions"},"pages":[{"group":"Solutions","pages":[{"group":"Search","pages":[{"title":"Place sponsored products in search results","sidebarTitle":"Sponsored products","href":"/doc/guides/compositions/solutions/search/sponsored-products"},{"title":"Federated search with multifeed compositions","sidebarTitle":"Federated search","href":"/doc/guides/compositions/solutions/search/federated-search"}]}]},{"group":"Building blocks","pages":[{"group":"Smart Groups","root":{"title":"Smart Groups","href":"/doc/guides/compositions/smart-groups/smart-groups"},"pages":[{"group":"Group types","pages":[{"title":"Search-based groups","href":"/doc/guides/compositions/smart-groups/search-based-groups"},{"title":"Native retail media orchestration","href":"/doc/guides/compositions/smart-groups/native-rmn-orchestration"},{"title":"External source groups","href":"/doc/guides/compositions/smart-groups/external-source-groups"},{"title":"Recommend-based groups","href":"/doc/guides/compositions/smart-groups/recommend-based-groups"}]}]}]},{"group":"Configure","pages":[{"title":"Return multiple result sets with multifeed compositions","sidebarTitle":"Multifeed compositions","href":"/doc/guides/compositions/multifeed-compositions"},{"title":"Choose how to deduplicate results","href":"/doc/guides/compositions/smart-groups/deduplication-strategy"},{"title":"Sort organic results","href":"/doc/guides/compositions/sorting-strategy"}]}]},{"group":"AI relevance","pages":[{"title":"Dynamic Facets","href":"/doc/guides/algolia-ai/dynamic-facets"},{"title":"AI Synonyms","href":"/doc/guides/algolia-ai/dynamic-synonym-suggestions"},{"group":"Dynamic Re-Ranking","root":{"title":"Dynamic Re-Ranking","href":"/doc/guides/algolia-ai/re-ranking"},"pages":[{"title":"Enable Dynamic Re-Ranking on category pages","href":"/doc/guides/algolia-ai/re-ranking/tutorials/re-rank-category-pages"}]},{"group":"NeuralSearch","pages":[{"title":"Get started with NeuralSearch","sidebarTitle":"Get started","href":"/doc/guides/ai-relevance/neuralsearch/get-started"},{"title":"Adaptive Intent","href":"/doc/guides/ai-relevance/neuralsearch/adaptive-intent"},{"title":"NeuralSearch A/B testing","sidebarTitle":"A/B testing","href":"/doc/guides/ai-relevance/neuralsearch/ab-testing"},{"title":"NeuralSearch limits and unsupported features","sidebarTitle":"Limitations","href":"/doc/guides/ai-relevance/neuralsearch/limitations"},{"title":"Manage model training preferences","sidebarTitle":"Model training preferences","href":"/doc/guides/ai-relevance/neuralsearch/model-training"}]},{"title":"Query Categorization","href":"/doc/guides/algolia-ai/query-categorization"},{"title":"Optimize search settings with AI Assist","href":"/doc/guides/algolia-ai/optimize-search-settings"}]},{"group":"Build Search UI","pages":[{"group":"InstantSearch.js","pages":[{"title":"What is InstantSearch.js?","href":"/doc/guides/building-search-ui/what-is-instantsearch/js"},{"title":"How to install InstantSearch.js","sidebarTitle":"Installation","href":"/doc/guides/building-search-ui/installation/js"},{"sidebarTitle":"Quickstart","title":"Get started with InstantSearch.js","href":"/doc/guides/building-search-ui/getting-started/js"},{"sidebarTitle":"Click and conversion events","title":"Send click and conversion events with InstantSearch.js","href":"/doc/guides/building-search-ui/events/js"},{"title":"Styling and theming","href":"/doc/guides/building-search-ui/styling/js"},{"sidebarTitle":"Upgrade","title":"Upgrade InstantSearch.js","href":"/doc/guides/building-search-ui/upgrade-guides/js"},{"group":"Widgets","pages":[{"title":"Showcase for InstantSearch.js widgets","sidebarTitle":"Widgets showcase","mode":"wide","href":"/doc/guides/building-search-ui/widgets/showcase/js"},{"title":"Customize existing widgets","href":"/doc/guides/building-search-ui/widgets/customize-an-existing-widget/js"},{"title":"Create your own widgets","href":"/doc/guides/building-search-ui/widgets/create-your-own-widgets/js"},{"sidebarTitle":"Change browser defaults for custom search inputs","title":"Change browser defaults for InstantSearch.js","href":"/doc/guides/building-search-ui/widgets/disabling-default-browser-behavior/js"}]},{"group":"UI \u0026 UX patterns","pages":[{"group":"Autocomplete","pages":[{"title":"Autocomplete","sidebarTitle":"Overview","href":"/doc/guides/building-search-ui/ui-and-ux-patterns/autocomplete/js"},{"title":"Build a Query Suggestions UI","sidebarTitle":"Query Suggestions","href":"/doc/guides/building-search-ui/ui-and-ux-patterns/autocomplete/query-suggestions/js"},{"title":"Federated two-column autocomplete","sidebarTitle":"Federated search","href":"/doc/guides/building-search-ui/ui-and-ux-patterns/autocomplete/examples/federated/js"},{"title":"Build a mentions text box","sidebarTitle":"Mentions text box","href":"/doc/guides/building-search-ui/ui-and-ux-patterns/autocomplete/examples/mentions/js"}]},{"title":"Multi-index search","href":"/doc/guides/building-search-ui/ui-and-ux-patterns/multi-index-search/js"},{"title":"Query Suggestions","href":"/doc/guides/building-search-ui/ui-and-ux-patterns/query-suggestions/js"},{"sidebarTitle":"Highlighting and snippeting","title":"Highlighting in InstantSearch.js","href":"/doc/guides/building-search-ui/ui-and-ux-patterns/highlighting-snippeting/js"},{"title":"Pagination","href":"/doc/guides/building-search-ui/ui-and-ux-patterns/pagination/js"},{"sidebarTitle":"Infinite scroll","title":"Infinite scroll with InstantSearch.js","href":"/doc/guides/building-search-ui/ui-and-ux-patterns/infinite-scroll/js"},{"title":"Geo search","href":"/doc/guides/building-search-ui/ui-and-ux-patterns/geo-search/js"},{"sidebarTitle":"Recommendations","title":"Recommendations in InstantSearch.js","href":"/doc/guides/building-search-ui/ui-and-ux-patterns/recommend/js"},{"sidebarTitle":"OpenSearch protocol","title":"Implement the OpenSearch protocol with InstantSearch.js","href":"/doc/guides/building-search-ui/ui-and-ux-patterns/opensearch/js"},{"sidebarTitle":"Redirects","title":"Redirects in InstantSearch.js","href":"/doc/guides/building-search-ui/ui-and-ux-patterns/redirects/js"},{"sidebarTitle":"Structured results","title":"Structured results in InstantSearch.js","href":"/doc/guides/building-search-ui/ui-and-ux-patterns/structured-results/js"},{"title":"Facet display","href":"/doc/guides/building-search-ui/ui-and-ux-patterns/facet-display/js"},{"title":"Facet drop-down menus","href":"/doc/guides/building-search-ui/ui-and-ux-patterns/facet-dropdown/js"},{"sidebarTitle":"Loading indicator","title":"Loading indicator with InstantSearch.js","href":"/doc/guides/building-search-ui/ui-and-ux-patterns/loading-indicator/js"}]},{"group":"Going further","pages":[{"sidebarTitle":"Conditional display","title":"Conditional display in InstantSearch.js","href":"/doc/guides/building-search-ui/going-further/conditional-display/js"},{"sidebarTitle":"Conditional requests","title":"Conditional requests with InstantSearch.js","href":"/doc/guides/building-search-ui/going-further/conditional-requests/js"},{"sidebarTitle":"API keys/security","title":"Secured API keys in InstantSearch.js","href":"/doc/guides/building-search-ui/going-further/api-keys-security/js"},{"sidebarTitle":"Routing URLs","title":"Routing and URL syncing in InstantSearch.js","href":"/doc/guides/building-search-ui/going-further/routing-urls/js"},{"title":"Integrate Google Analytics","href":"/doc/guides/building-search-ui/going-further/integrate-google-analytics/js"},{"title":"Improve performance","href":"/doc/guides/building-search-ui/going-further/improve-performance/js"},{"sidebarTitle":"Optimize search requests","title":"Optimize InstantSearch.js search requests","href":"/doc/guides/building-search-ui/going-further/optimize-search-request-usage/js"},{"group":"Backend search","pages":[{"title":"Backend search with InstantSearch.js","sidebarTitle":"Overview","href":"/doc/guides/building-search-ui/going-further/backend-search/js"},{"title":"Understand the API response","href":"/doc/guides/building-search-ui/going-further/backend-search/in-depth/understanding-the-api-response/js"},{"title":"Implement backend search with InstantSearch.js","sidebarTitle":"Backend search with InstantSearch","href":"/doc/guides/building-search-ui/going-further/backend-search/in-depth/backend-instantsearch/js"},{"title":"Backend search with an API client","href":"/doc/guides/building-search-ui/going-further/backend-search/in-depth/backend-search-with-an-api-client/js"}]},{"title":"Access state outside the lifecycle","href":"/doc/guides/building-search-ui/going-further/access-state-outside-lifecycle/js"},{"sidebarTitle":"Server-side rendering","title":"Dynamic rendering with InstantSearch.js","href":"/doc/guides/building-search-ui/going-further/server-side-rendering/js"},{"sidebarTitle":"Automatic filtering","title":"Turn off automatic filtering in InstantSearch.js","href":"/doc/guides/building-search-ui/going-further/automatic-filtering/js"},{"title":"Using InstantSearch.js on mobile","sidebarTitle":"Native","href":"/doc/guides/building-search-ui/going-further/native/js"},{"group":"Customize chat","pages":[{"sidebarTitle":"AI search experience","title":"Build an AI-powered search experience","href":"/doc/guides/building-search-ui/going-further/chat-customization/ai-search-experience/js"},{"sidebarTitle":"Loader content","title":"Customize the chat loader","href":"/doc/guides/building-search-ui/going-further/chat-customization/loading-message/js"},{"sidebarTitle":"Loader behavior","title":"Control when and where the chat loader shows","href":"/doc/guides/building-search-ui/going-further/chat-customization/loader-behavior/js"},{"sidebarTitle":"Results carousel","title":"Customize the chat results carousel","href":"/doc/guides/building-search-ui/going-further/chat-customization/results-carousel/js"},{"sidebarTitle":"Welcome screen","title":"Show starter prompts on the chat welcome screen","href":"/doc/guides/building-search-ui/going-further/chat-customization/welcome-screen/js"}]}]},{"group":"Resources","pages":[{"sidebarTitle":"UI Design Kit","title":"UI Design Kit (Figma)","href":"/doc/guides/building-search-ui/resources/ui-kit/js"},{"sidebarTitle":"Demos","title":"UI examples for InstantSearch.js","href":"/doc/guides/building-search-ui/resources/demos/js"},{"title":"SEO checklist","href":"/doc/guides/building-search-ui/resources/seo/js"}]}]},{"group":"React InstantSearch","pages":[{"title":"What is React InstantSearch?","href":"/doc/guides/building-search-ui/what-is-instantsearch/react"},{"title":"Install React InstantSearch","sidebarTitle":"Installation","href":"/doc/guides/building-search-ui/installation/react"},{"sidebarTitle":"Quickstart","title":"Get started with React InstantSearch","href":"/doc/guides/building-search-ui/getting-started/react"},{"sidebarTitle":"Click and conversion events","title":"Send click and conversion events with React InstantSearch","href":"/doc/guides/building-search-ui/events/react"},{"title":"Styling and theming","href":"/doc/guides/building-search-ui/styling/react"},{"sidebarTitle":"Upgrade guide","title":"Upgrade React InstantSearch","href":"/doc/guides/building-search-ui/upgrade-guides/react"},{"group":"Widgets","pages":[{"title":"Showcase for React InstantSearch widgets","sidebarTitle":"Widget showcase","mode":"wide","href":"/doc/guides/building-search-ui/widgets/showcase/react"},{"title":"Customize existing widgets","href":"/doc/guides/building-search-ui/widgets/customize-an-existing-widget/react"},{"title":"Create your own widgets","href":"/doc/guides/building-search-ui/widgets/create-your-own-widgets/react"},{"sidebarTitle":"Show and hide widgets","title":"Show and hide React InstantSearch widgets","href":"/doc/guides/building-search-ui/widgets/show-and-hide-widgets/react"},{"title":"Change browser defaults","href":"/doc/guides/building-search-ui/widgets/disabling-default-browser-behavior/react"}]},{"group":"UI \u0026 UX patterns","pages":[{"group":"Autocomplete","pages":[{"title":"Autocomplete","sidebarTitle":"Overview","href":"/doc/guides/building-search-ui/ui-and-ux-patterns/autocomplete/react"},{"title":"Build a Query Suggestions UI","sidebarTitle":"Query Suggestions","href":"/doc/guides/building-search-ui/ui-and-ux-patterns/autocomplete/query-suggestions/react"},{"title":"Federated two-column autocomplete","sidebarTitle":"Federated search","href":"/doc/guides/building-search-ui/ui-and-ux-patterns/autocomplete/examples/federated/react"},{"title":"Build a mentions text box","sidebarTitle":"Mentions text box","href":"/doc/guides/building-search-ui/ui-and-ux-patterns/autocomplete/examples/mentions/react"}]},{"title":"Multi-index search","href":"/doc/guides/building-search-ui/ui-and-ux-patterns/multi-index-search/react"},{"title":"Query Suggestions","href":"/doc/guides/building-search-ui/ui-and-ux-patterns/query-suggestions/react"},{"title":"Highlighting and snippeting","href":"/doc/guides/building-search-ui/ui-and-ux-patterns/highlighting-snippeting/react"},{"title":"Pagination","href":"/doc/guides/building-search-ui/ui-and-ux-patterns/pagination/react"},{"title":"Infinite scroll with React InstantSearch","sidebarTitle":"Infinite scroll","href":"/doc/guides/building-search-ui/ui-and-ux-patterns/infinite-scroll/react"},{"title":"Geo search","href":"/doc/guides/building-search-ui/ui-and-ux-patterns/geo-search/react"},{"title":"Recommendations","href":"/doc/guides/building-search-ui/ui-and-ux-patterns/recommend/react"},{"sidebarTitle":"OpenSearch protocol","title":"Implement the OpenSearch protocol with React InstantSearch","href":"/doc/guides/building-search-ui/ui-and-ux-patterns/opensearch/react"},{"title":"Redirects","href":"/doc/guides/building-search-ui/ui-and-ux-patterns/redirects/react"},{"title":"Structured results","href":"/doc/guides/building-search-ui/ui-and-ux-patterns/structured-results/react"},{"title":"Facet display","href":"/doc/guides/building-search-ui/ui-and-ux-patterns/facet-display/react"},{"title":"Facet drop-down menus","href":"/doc/guides/building-search-ui/ui-and-ux-patterns/facet-dropdown/react"},{"title":"Loading indicator","href":"/doc/guides/building-search-ui/ui-and-ux-patterns/loading-indicator/react"}]},{"group":"Going further","pages":[{"title":"Conditional display","href":"/doc/guides/building-search-ui/going-further/conditional-display/react"},{"title":"Conditional requests","href":"/doc/guides/building-search-ui/going-further/conditional-requests/react"},{"title":"Secured API keys","href":"/doc/guides/building-search-ui/going-further/api-keys-security/react"},{"sidebarTitle":"Routing URLs","title":"Routing and URL syncing in React InstantSearch","href":"/doc/guides/building-search-ui/going-further/routing-urls/react"},{"title":"Integrate Google Analytics","href":"/doc/guides/building-search-ui/going-further/integrate-google-analytics/react"},{"title":"Improve performance","href":"/doc/guides/building-search-ui/going-further/improve-performance/react"},{"title":"Optimize search requests","href":"/doc/guides/building-search-ui/going-further/optimize-search-request-usage/react"},{"group":"Backend search","pages":[{"title":"Backend search with React InstantSearch","sidebarTitle":"Overview","href":"/doc/guides/building-search-ui/going-further/backend-search/react"},{"title":"Understand the API response","href":"/doc/guides/building-search-ui/going-further/backend-search/in-depth/understanding-the-api-response/react"},{"title":"Implement backend search with React InstantSearch","sidebarTitle":"Backend search with InstantSearch","href":"/doc/guides/building-search-ui/going-further/backend-search/in-depth/backend-instantsearch/react"},{"title":"Backend search with an API client","href":"/doc/guides/building-search-ui/going-further/backend-search/in-depth/backend-search-with-an-api-client/react"}]},{"title":"React Native","href":"/doc/guides/building-search-ui/going-further/native/react"},{"title":"Server-side rendering","href":"/doc/guides/building-search-ui/going-further/server-side-rendering/react"},{"sidebarTitle":"Automatic filtering","title":"Turn off automatic filtering in React InstantSearch","href":"/doc/guides/building-search-ui/going-further/automatic-filtering/react"},{"group":"Customize chat","pages":[{"sidebarTitle":"AI search experience","title":"Build an AI-powered search experience","href":"/doc/guides/building-search-ui/going-further/chat-customization/ai-search-experience/react"},{"sidebarTitle":"Legal notice","title":"Add a legal notice to the chat widget","href":"/doc/guides/building-search-ui/going-further/chat-customization/legal-notice/react"},{"sidebarTitle":"Loader content","title":"Customize the chat loader","href":"/doc/guides/building-search-ui/going-further/chat-customization/loading-message/react"},{"sidebarTitle":"Loader behavior","title":"Control when and where the chat loader shows","href":"/doc/guides/building-search-ui/going-further/chat-customization/loader-behavior/react"},{"sidebarTitle":"Results carousel","title":"Customize the chat results carousel","href":"/doc/guides/building-search-ui/going-further/chat-customization/results-carousel/react"},{"sidebarTitle":"Welcome screen","title":"Show starter prompts on the chat welcome screen","href":"/doc/guides/building-search-ui/going-further/chat-customization/welcome-screen/react"}]}]},{"group":"Resources","pages":[{"sidebarTitle":"UI Design Kit","title":"UI Design Kit (Figma)","href":"/doc/guides/building-search-ui/resources/ui-kit/react"},{"sidebarTitle":"Demos","title":"UI examples for React InstantSearch","href":"/doc/guides/building-search-ui/resources/demos/react"},{"title":"SEO checklist","href":"/doc/guides/building-search-ui/resources/seo/react"}]}]},{"group":"Vue InstantSearch","pages":[{"title":"What is Vue InstantSearch?","href":"/doc/guides/building-search-ui/what-is-instantsearch/vue"},{"title":"How to install Vue InstantSearch","sidebarTitle":"Installation","href":"/doc/guides/building-search-ui/installation/vue"},{"sidebarTitle":"Quickstart","title":"Get started with Vue InstantSearch","href":"/doc/guides/building-search-ui/getting-started/vue"},{"sidebarTitle":"Click and conversion events","title":"Send click and conversion events with Vue InstantSearch","href":"/doc/guides/building-search-ui/events/vue"},{"title":"Styling and theming","href":"/doc/guides/building-search-ui/styling/vue"},{"sidebarTitle":"Upgrade","title":"Upgrade Vue InstantSearch","href":"/doc/guides/building-search-ui/upgrade-guides/vue"},{"group":"Widgets","pages":[{"title":"Showcase for Vue InstantSearch widgets","sidebarTitle":"Widget showcase","mode":"wide","href":"/doc/guides/building-search-ui/widgets/showcase/vue"},{"title":"Customize existing widgets","href":"/doc/guides/building-search-ui/widgets/customize-an-existing-widget/vue"},{"title":"Create your widgets","href":"/doc/guides/building-search-ui/widgets/create-your-own-widgets/vue"},{"title":"Show and hide widgets","href":"/doc/guides/building-search-ui/widgets/show-and-hide-widgets/vue"},{"sidebarTitle":"Change browser defaults for custom search inputs","title":"Change browser defaults for Vue InstantSearch","href":"/doc/guides/building-search-ui/widgets/disabling-default-browser-behavior/vue"}]},{"group":"UI \u0026 UX patterns","pages":[{"title":"Autocomplete","href":"/doc/guides/building-search-ui/ui-and-ux-patterns/autocomplete/vue"},{"title":"Multi-index search","href":"/doc/guides/building-search-ui/ui-and-ux-patterns/multi-index-search/vue"},{"group":"Query Suggestions","root":{"title":"Query Suggestions","sidebarTitle":"Overview","href":"/doc/guides/building-search-ui/ui-and-ux-patterns/query-suggestions/vue"},"pages":[{"title":"Build a Query Suggestions UI","href":"/doc/guides/building-search-ui/ui-and-ux-patterns/query-suggestions/tutorials/building-query-suggestions-ui/vue"}]},{"sidebarTitle":"Highlighting and snippeting","title":"Highlighting in Vue InstantSearch","href":"/doc/guides/building-search-ui/ui-and-ux-patterns/highlighting-snippeting/vue"},{"title":"Pagination","href":"/doc/guides/building-search-ui/ui-and-ux-patterns/pagination/vue"},{"sidebarTitle":"Infinite scroll","title":"Infinite scroll with Vue InstantSearch","href":"/doc/guides/building-search-ui/ui-and-ux-patterns/infinite-scroll/vue"},{"title":"Geo search","href":"/doc/guides/building-search-ui/ui-and-ux-patterns/geo-search/vue"},{"sidebarTitle":"OpenSearch protocol","title":"Implement the OpenSearch protocol with Vue InstantSearch","href":"/doc/guides/building-search-ui/ui-and-ux-patterns/opensearch/vue"},{"sidebarTitle":"Redirects","title":"Redirects in Vue InstantSearch","href":"/doc/guides/building-search-ui/ui-and-ux-patterns/redirects/vue"},{"sidebarTitle":"Structured results","title":"Structured results in Vue InstantSearch","href":"/doc/guides/building-search-ui/ui-and-ux-patterns/structured-results/vue"},{"title":"Facet display","href":"/doc/guides/building-search-ui/ui-and-ux-patterns/facet-display/vue"},{"sidebarTitle":"Loading indicator","title":"Loading indicator with Vue InstantSearch","href":"/doc/guides/building-search-ui/ui-and-ux-patterns/loading-indicator/vue"}]},{"group":"Going further","pages":[{"sidebarTitle":"Conditional display","title":"Conditional display in Vue InstantSearch","href":"/doc/guides/building-search-ui/going-further/conditional-display/vue"},{"sidebarTitle":"Conditional requests","title":"Conditional requests with Vue InstantSearch","href":"/doc/guides/building-search-ui/going-further/conditional-requests/vue"},{"sidebarTitle":"API keys/security","title":"Secured API keys in Vue InstantSearch","href":"/doc/guides/building-search-ui/going-further/api-keys-security/vue"},{"sidebarTitle":"Routing URLs","title":"Routing and URL syncing in Vue InstantSearch","href":"/doc/guides/building-search-ui/going-further/routing-urls/vue"},{"title":"Integrate Google Analytics","href":"/doc/guides/building-search-ui/going-further/integrate-google-analytics/vue"},{"sidebarTitle":"Improve performance","title":"Improve performance for Vue InstantSearch","href":"/doc/guides/building-search-ui/going-further/improve-performance/vue"},{"sidebarTitle":"Optimize search requests","title":"Optimize Vue InstantSearch search requests","href":"/doc/guides/building-search-ui/going-further/optimize-search-request-usage/vue"},{"group":"Backend search","pages":[{"title":"Backend search with Vue InstantSearch","sidebarTitle":"Overview","href":"/doc/guides/building-search-ui/going-further/backend-search/vue"},{"title":"Understand the API response","href":"/doc/guides/building-search-ui/going-further/backend-search/in-depth/understanding-the-api-response/vue"},{"title":"Implement backend search with Vue InstantSearch","sidebarTitle":"Backend search with InstantSearch","href":"/doc/guides/building-search-ui/going-further/backend-search/in-depth/backend-instantsearch/vue"},{"title":"Backend search with an API client","href":"/doc/guides/building-search-ui/going-further/backend-search/in-depth/backend-search-with-an-api-client/vue"}]},{"title":"Use Vue InstantSearch with mobile frameworks","sidebarTitle":"Native","href":"/doc/guides/building-search-ui/going-further/native/vue"},{"title":"Server-side rendering","href":"/doc/guides/building-search-ui/going-further/server-side-rendering/vue"}]},{"group":"Resources","pages":[{"sidebarTitle":"UI Design Kit","title":"UI Design Kit (Figma)","href":"/doc/guides/building-search-ui/resources/ui-kit/vue"},{"sidebarTitle":"Demos","title":"UI examples for Vue InstantSearch","href":"/doc/guides/building-search-ui/resources/demos/vue"},{"title":"SEO checklist","href":"/doc/guides/building-search-ui/resources/seo/vue"}]}]},{"group":"With Angular","pages":[{"sidebarTitle":"Get started","title":"Get started with InstantSearch.js in Angular","href":"/doc/guides/building-search-ui/getting-started/angular"}]},{"group":"InstantSearch iOS","pages":[{"title":"What is InstantSearch iOS","href":"/doc/guides/building-search-ui/what-is-instantsearch/ios"},{"title":"Install InstantSearch iOS","sidebarTitle":"Installation","href":"/doc/guides/building-search-ui/installation/ios"},{"group":"Get started","root":{"title":"Get started with InstantSearch iOS","sidebarTitle":"Get started","href":"/doc/guides/building-search-ui/getting-started/ios"},"pages":[{"title":"Get started programmatically","href":"/doc/guides/building-search-ui/getting-started/how-to/programmatically/ios"},{"title":"Get started with SwiftUI","href":"/doc/guides/building-search-ui/getting-started/how-to/declarative/ios"}]},{"sidebarTitle":"Click and conversion events","title":"Send click and conversion events with InstantSearch iOS","href":"/doc/guides/building-search-ui/events/ios"},{"sidebarTitle":"Upgrade","title":"Upgrading InstantSearch iOS","href":"/doc/guides/building-search-ui/upgrade-guides/ios"},{"group":"Widgets","pages":[{"sidebarTitle":"Widgets showcase","title":"Showcase for InstantSearch iOS widgets","href":"/doc/guides/building-search-ui/widgets/showcase/ios"},{"title":"Customize existing widgets","href":"/doc/guides/building-search-ui/widgets/customize-an-existing-widget/ios"},{"title":"Create your own widgets","href":"/doc/guides/building-search-ui/widgets/create-your-own-widgets/ios"}]},{"group":"UI \u0026 UX patterns","pages":[{"sidebarTitle":"Autocomplete","title":"Build an autocomplete with InstantSearch iOS","href":"/doc/guides/building-search-ui/ui-and-ux-patterns/autocomplete/ios"},{"title":"Multi-index search","href":"/doc/guides/building-search-ui/ui-and-ux-patterns/multi-index-search/ios"},{"group":"Query Suggestions","root":{"title":"Query Suggestions","sidebarTitle":"Overview","href":"/doc/guides/building-search-ui/ui-and-ux-patterns/query-suggestions/ios"},"pages":[{"title":"Build a Query Suggestions UI","href":"/doc/guides/building-search-ui/ui-and-ux-patterns/query-suggestions/tutorials/building-query-suggestions-ui/ios"},{"title":"Build a Query Suggestions UI with UIKit","href":"/doc/guides/building-search-ui/ui-and-ux-patterns/query-suggestions/tutorials/building-query-suggestions-ui/programatically/ios"},{"title":"Build a Query Suggestions UI with SwiftUI","href":"/doc/guides/building-search-ui/ui-and-ux-patterns/query-suggestions/tutorials/building-query-suggestions-ui/declarative/ios"}]},{"title":"Highlighting and snippeting","href":"/doc/guides/building-search-ui/ui-and-ux-patterns/highlighting-snippeting/ios"},{"title":"Pagination","href":"/doc/guides/building-search-ui/ui-and-ux-patterns/pagination/ios"},{"title":"Infinite scroll with InstantSearch iOS","sidebarTitle":"Infinite scroll","href":"/doc/guides/building-search-ui/ui-and-ux-patterns/infinite-scroll/ios"},{"title":"Geo search","href":"/doc/guides/building-search-ui/ui-and-ux-patterns/geo-search/ios"},{"title":"Sorting refinements","href":"/doc/guides/building-search-ui/ui-and-ux-patterns/sorting-refinements/ios"},{"sidebarTitle":"Filtering patterns","title":"Filtering patterns for InstantSearch iOS","href":"/doc/guides/building-search-ui/ui-and-ux-patterns/filtering-patterns/ios"},{"title":"Redirects","href":"/doc/guides/building-search-ui/ui-and-ux-patterns/redirects/ios"},{"title":"Facet display","href":"/doc/guides/building-search-ui/ui-and-ux-patterns/facet-display/ios"},{"title":"Voice search","href":"/doc/guides/building-search-ui/ui-and-ux-patterns/voice-search/ios"}]},{"group":"Going further","pages":[{"sidebarTitle":"Conditional display","title":"Conditional display in InstantSearch iOS","href":"/doc/guides/building-search-ui/going-further/conditional-display/ios"},{"title":"Conditional requests","href":"/doc/guides/building-search-ui/going-further/conditional-requests/ios"},{"title":"Secured API keys","href":"/doc/guides/building-search-ui/going-further/api-keys-security/ios"},{"sidebarTitle":"Improve performance","title":"Improve performance for InstantSearch iOS","href":"/doc/guides/building-search-ui/going-further/improve-performance/ios"},{"title":"Optimize search requests","href":"/doc/guides/building-search-ui/going-further/optimize-search-request-usage/ios"},{"group":"Backend search","pages":[{"title":"Backend search with InstantSearch iOS","sidebarTitle":"Overview","href":"/doc/guides/building-search-ui/going-further/backend-search/ios"},{"title":"Understand the API response","href":"/doc/guides/building-search-ui/going-further/backend-search/in-depth/understanding-the-api-response/ios"},{"title":"Implement backend search with InstantSearch on iOS","sidebarTitle":"Backend search with InstantSearch","href":"/doc/guides/building-search-ui/going-further/backend-search/in-depth/backend-instantsearch/ios"},{"title":"Backend search with an API client","href":"/doc/guides/building-search-ui/going-further/backend-search/in-depth/backend-search-with-an-api-client/ios"}]},{"title":"Telemetry","href":"/doc/guides/building-search-ui/going-further/telemetry/ios"}]},{"group":"Resources","pages":[{"sidebarTitle":"UI Design Kit","title":"UI Design Kit (Figma)","href":"/doc/guides/building-search-ui/resources/ui-kit/ios"},{"sidebarTitle":"Demos","title":"UI examples for InstantSearch iOS","href":"/doc/guides/building-search-ui/resources/demos/ios"},{"title":"Privacy manifests","href":"/doc/guides/building-search-ui/resources/privacy-manifest/ios"}]}]},{"group":"InstantSearch Android","pages":[{"title":"What is InstantSearch Android?","href":"/doc/guides/building-search-ui/what-is-instantsearch/android"},{"title":"How to install InstantSearch Android","sidebarTitle":"Installation","href":"/doc/guides/building-search-ui/installation/android"},{"group":"Get started","root":{"title":"Get started with InstantSearch Android","sidebarTitle":"Get started","href":"/doc/guides/building-search-ui/getting-started/android"},"pages":[{"title":"Get started with imperative UI","href":"/doc/guides/building-search-ui/getting-started/how-to/programmatically/android"},{"title":"Get started with declarative UI","href":"/doc/guides/building-search-ui/getting-started/how-to/declarative/android"}]},{"sidebarTitle":"Click and conversion events","title":"Send click and conversion events with InstantSearch Android","href":"/doc/guides/building-search-ui/events/android"},{"sidebarTitle":"Upgrade guide","title":"Upgrading InstantSearch Android","href":"/doc/guides/building-search-ui/upgrade-guides/android"},{"group":"Widgets","pages":[{"sidebarTitle":"Widget showcase","title":"Showcase for InstantSearch Android widgets","href":"/doc/guides/building-search-ui/widgets/showcase/android"},{"sidebarTitle":"Customize an existing widget","title":"Customize an InstantSearch Android widget","href":"/doc/guides/building-search-ui/widgets/customize-an-existing-widget/android"},{"sidebarTitle":"Create your own widgets","title":"Create your own InstantSearch Android widgets","href":"/doc/guides/building-search-ui/widgets/create-your-own-widgets/android"}]},{"group":"UI \u0026 UX patterns","pages":[{"sidebarTitle":"Autocomplete","title":"Build an autocomplete with InstantSearch Android","href":"/doc/guides/building-search-ui/ui-and-ux-patterns/autocomplete/android"},{"sidebarTitle":"Multi-index search","title":"Multi-index search","href":"/doc/guides/building-search-ui/ui-and-ux-patterns/multi-index-search/android"},{"group":"Query Suggestions","root":{"title":"Query Suggestions","sidebarTitle":"Overview","href":"/doc/guides/building-search-ui/ui-and-ux-patterns/query-suggestions/android"},"pages":[{"title":"Build a Query Suggestions UI","href":"/doc/guides/building-search-ui/ui-and-ux-patterns/query-suggestions/tutorials/building-query-suggestions-ui/android"}]},{"sidebarTitle":"Highlighting and snippeting","title":"Highlighting in InstantSearch Android","href":"/doc/guides/building-search-ui/ui-and-ux-patterns/highlighting-snippeting/android"},{"title":"Pagination","href":"/doc/guides/building-search-ui/ui-and-ux-patterns/pagination/android"},{"title":"Infinite scroll with InstantSearch Android","sidebarTitle":"Infinite scroll","href":"/doc/guides/building-search-ui/ui-and-ux-patterns/infinite-scroll/android"},{"title":"Geo search","href":"/doc/guides/building-search-ui/ui-and-ux-patterns/geo-search/android"},{"sidebarTitle":"Sorting refinements","title":"Sorting refinements in InstantSearch Android","href":"/doc/guides/building-search-ui/ui-and-ux-patterns/sorting-refinements/android"},{"sidebarTitle":"Filtering patterns","title":"Filtering patterns for InstantSearch Android","href":"/doc/guides/building-search-ui/ui-and-ux-patterns/filtering-patterns/android"},{"sidebarTitle":"Redirects","title":"Redirects in InstantSearch Android","href":"/doc/guides/building-search-ui/ui-and-ux-patterns/redirects/android"},{"title":"Facet display","href":"/doc/guides/building-search-ui/ui-and-ux-patterns/facet-display/android"},{"title":"Voice search","href":"/doc/guides/building-search-ui/ui-and-ux-patterns/voice-search/android"}]},{"group":"Going further","pages":[{"sidebarTitle":"Conditional display","title":"Conditional display in InstantSearch Android","href":"/doc/guides/building-search-ui/going-further/conditional-display/android"},{"sidebarTitle":"Conditional requests","title":"Conditional requests with InstantSearch Android","href":"/doc/guides/building-search-ui/going-further/conditional-requests/android"},{"sidebarTitle":"API keys/security","title":"Secured API keys in InstantSearch for Android","href":"/doc/guides/building-search-ui/going-further/api-keys-security/android"},{"sidebarTitle":"Improve performance","title":"Improve performance for InstantSearch Android","href":"/doc/guides/building-search-ui/going-further/improve-performance/android"},{"sidebarTitle":"Optimize search requests","title":"Optimize InstantSearch Android search requests","href":"/doc/guides/building-search-ui/going-further/optimize-search-request-usage/android"},{"group":"Backend search","pages":[{"title":"Backend search with InstantSearch Android","sidebarTitle":"Overview","href":"/doc/guides/building-search-ui/going-further/backend-search/android"},{"title":"Understand the API response","href":"/doc/guides/building-search-ui/going-further/backend-search/in-depth/understanding-the-api-response/android"},{"title":"Implement backend search with InstantSearch on Android","sidebarTitle":"Backend search with InstantSearch","href":"/doc/guides/building-search-ui/going-further/backend-search/in-depth/backend-instantsearch/android"},{"title":"Backend search with an API client","href":"/doc/guides/building-search-ui/going-further/backend-search/in-depth/backend-search-with-an-api-client/android"}]},{"sidebarTitle":"Telemetry","title":"Telemetry collection in InstantSearch Android","href":"/doc/guides/building-search-ui/going-further/telemetry/android"}]},{"group":"Resources","pages":[{"sidebarTitle":"UI Design Kit","title":"UI Design Kit (Figma)","href":"/doc/guides/building-search-ui/resources/ui-kit/android"},{"sidebarTitle":"Demos","title":"UI examples for InstantSearch Android","href":"/doc/guides/building-search-ui/resources/demos/android"}]}]},{"group":"Algolia for Flutter","pages":[{"title":"Algolia for Flutter","href":"/doc/guides/building-search-ui/what-is-instantsearch/flutter"},{"title":"How to install the Flutter Helper","sidebarTitle":"Installation","href":"/doc/guides/building-search-ui/installation/flutter"},{"title":"Get started with Flutter Helper","sidebarTitle":"Get started","href":"/doc/guides/building-search-ui/getting-started/flutter"},{"sidebarTitle":"Click and conversion events","title":"Send click and conversion events with the Flutter Helper","href":"/doc/guides/building-search-ui/events/flutter"},{"group":"Widgets","pages":[{"title":"Showcase for Flutter helper components","sidebarTitle":"Widgets showcase","href":"/doc/guides/building-search-ui/widgets/showcase/flutter"}]},{"group":"UI \u0026 UX patterns","pages":[{"sidebarTitle":"Highlighting and snippeting","title":"Highlighting in Algolia for Flutter","href":"/doc/guides/building-search-ui/ui-and-ux-patterns/highlighting-snippeting/flutter"}]},{"group":"Ecommerce UI template","pages":[{"title":"Ecommerce UI template","sidebarTitle":"Overview","href":"/doc/guides/building-search-ui/ecommerce-ui-template/overview/flutter"},{"title":"Get started with the Ecommerce UI template","sidebarTitle":"Get started","href":"/doc/guides/building-search-ui/ecommerce-ui-template/getting-started/flutter"},{"group":"Components","pages":[{"title":"Components","href":"/doc/guides/building-search-ui/ecommerce-ui-template/components/flutter"},{"title":"Showcase","href":"/doc/guides/building-search-ui/ecommerce-ui-template/components/in-depth/showcase/flutter"},{"title":"Autocomplete","href":"/doc/guides/building-search-ui/ecommerce-ui-template/components/in-depth/search-autocomplete/flutter"},{"group":"Product listing page","pages":[{"title":"Display products","href":"/doc/guides/building-search-ui/ecommerce-ui-template/components/in-depth/product-listing-page-display/display-products/flutter"},{"title":"Product card","href":"/doc/guides/building-search-ui/ecommerce-ui-template/components/in-depth/product-listing-page-display/product-card/flutter"},{"title":"No results handler","href":"/doc/guides/building-search-ui/ecommerce-ui-template/components/in-depth/product-listing-page-display/no-results-handler/flutter"}]},{"group":"Filters and sorting","pages":[{"title":"Refinements","href":"/doc/guides/building-search-ui/ecommerce-ui-template/components/in-depth/product-listing-page-filter-and-nav/filters-refinements/flutter"},{"title":"Refinement widgets","href":"/doc/guides/building-search-ui/ecommerce-ui-template/components/in-depth/product-listing-page-filter-and-nav/refinement-widgets/flutter"},{"title":"Sort UI components","href":"/doc/guides/building-search-ui/ecommerce-ui-template/components/in-depth/product-listing-page-filter-and-nav/sort/flutter"}]},{"group":"Data sources","pages":[{"title":"ProductRepository","href":"/doc/guides/building-search-ui/ecommerce-ui-template/components/in-depth/data-sources/product-repository/flutter"},{"title":"SuggestionRepository","href":"/doc/guides/building-search-ui/ecommerce-ui-template/components/in-depth/data-sources/suggestion-repository/flutter"},{"title":"SearchRepository","href":"/doc/guides/building-search-ui/ecommerce-ui-template/components/in-depth/data-sources/search-repository/flutter"}]}]}]},{"group":"Resources","pages":[{"sidebarTitle":"UI Design Kit","title":"UI Design Kit (Figma)","href":"/doc/guides/building-search-ui/resources/ui-kit/flutter"}]}]},{"group":"Algolia Experiences","tag":"pilot","pages":[{"title":"Get started with Algolia Experiences","sidebarTitle":"Get started","href":"/doc/guides/building-search-ui/algolia-experiences/get-started"},{"title":"Use Algolia Experiences in a React app","sidebarTitle":"Use in React","href":"/doc/guides/building-search-ui/algolia-experiences/use-in-react"},{"title":"Edit and preview your experience from your website","sidebarTitle":"Edit from your website","href":"/doc/guides/building-search-ui/algolia-experiences/preview-changes"},{"title":"Troubleshoot Algolia Experiences","sidebarTitle":"Troubleshooting","href":"/doc/guides/building-search-ui/algolia-experiences/troubleshooting"}]}]},{"group":"Click and conversion events","root":{"title":"Click and conversion events","href":"/doc/guides/sending-events"},"pages":[{"title":"Choose how to send events","sidebarTitle":"Implementation paths","href":"/doc/guides/sending-events/getting-started"},{"group":"Concepts","pages":[{"title":"Event types","href":"/doc/guides/sending-events/concepts/event-types"},{"title":"User token","href":"/doc/guides/sending-events/concepts/usertoken"}]},{"group":"Guides","pages":[{"title":"Which events to track","href":"/doc/guides/sending-events/guides/plan"},{"title":"Keep track of query IDs","href":"/doc/guides/sending-events/guides/queryid"},{"title":"Validate your events","href":"/doc/guides/sending-events/guides/validate"},{"group":"Send events with InstantSearch","pages":[{"title":"Send ecommerce events","sidebarTitle":"Ecommerce events","href":"/doc/guides/sending-events/instantsearch/send-ecommerce-events"},{"title":"Send media events","sidebarTitle":"Media events","href":"/doc/guides/sending-events/instantsearch/send-media-events"},{"title":"Send events","sidebarTitle":"Events","href":"/doc/guides/sending-events/instantsearch/send-events"}]},{"group":"Send events with API clients","pages":[{"title":"Send ecommerce events","sidebarTitle":"Ecommerce events","href":"/doc/guides/sending-events/api-client/send-ecommerce-events"},{"title":"Send media events","sidebarTitle":"Media events","href":"/doc/guides/sending-events/api-client/send-media-events"},{"title":"Send events","sidebarTitle":"Events","href":"/doc/guides/sending-events/api-client/send-events"}]}]},{"group":"Connectors","pages":[{"title":"Google Tag Manager","href":"/doc/guides/sending-events/connectors/google-tag-manager"},{"title":"Segment","href":"/doc/guides/sending-events/connectors/segment"},{"title":"Tealium","href":"/doc/guides/sending-events/connectors/tealium"},{"title":"Google Analytics BigQuery Export","sidebarTitle":"GA4 BigQuery Export","href":"/doc/guides/sending-events/connectors/google-analytics-big-query-export"}]}]},{"group":"Search analytics","root":{"title":"Search analytics","sidebarTitle":"Overview","href":"/doc/guides/search-analytics/overview"},"pages":[{"group":"Concepts","pages":[{"title":"Search analytics metrics","href":"/doc/guides/search-analytics/concepts/metrics"},{"title":"Query aggregation and processing","href":"/doc/guides/search-analytics/concepts/query-aggregation"}]},{"group":"Guides","pages":[{"title":"Distinguish users for analytics","href":"/doc/guides/search-analytics/guides/usertoken"},{"title":"Exclude search queries from analytics","href":"/doc/guides/search-analytics/guides/exclude-queries"},{"title":"Segment your analytics data","href":"/doc/guides/search-analytics/guides/segments"}]}]},{"group":"Solutions","pages":[{"group":"Search","root":{"title":"Search","href":"/doc/guides/solutions/ecommerce/search"},"pages":[{"title":"Autocomplete with Federated Search","href":"/doc/guides/solutions/ecommerce/search/autocomplete/federated-search"},{"title":"Animated placeholders","href":"/doc/guides/solutions/ecommerce/search/autocomplete/animated-placeholder"},{"title":"Predictive search suggestions","href":"/doc/guides/solutions/ecommerce/search/autocomplete/predictive-search-suggestions"}]},{"group":"Browse","root":{"title":"Browse","href":"/doc/guides/solutions/ecommerce/browse"},"pages":[{"title":"Category pages","href":"/doc/guides/solutions/ecommerce/browse/tutorials/category-pages"},{"title":"Collections","href":"/doc/guides/solutions/ecommerce/browse/tutorials/collections"},{"group":"Product carousels","pages":[{"title":"Static product carousels","href":"/doc/guides/solutions/ecommerce/browse/product-carousels/static-product-carousels"},{"title":"Dynamic product carousels","href":"/doc/guides/solutions/ecommerce/browse/product-carousels/dynamic-product-carousels"}]}]},{"group":"Filtering and Navigation","root":{"title":"Filtering and Navigation","href":"/doc/guides/solutions/ecommerce/filtering-and-navigation"},"pages":[{"title":"Show automatically applied filters","href":"/doc/guides/solutions/ecommerce/filtering-and-navigation/tutorials/auto-selected-facets"},{"title":"Visual facets","href":"/doc/guides/solutions/ecommerce/filtering-and-navigation/tutorials/visual-facets"},{"title":"Guided search","href":"/doc/guides/solutions/ecommerce/filtering-and-navigation/tutorials/guided-search"}]},{"group":"B2B catalog management","root":{"title":"B2B catalog management","href":"/doc/guides/solutions/ecommerce/b2b-catalog-management"},"pages":[{"title":"Search by SKU","href":"/doc/guides/solutions/ecommerce/b2b-catalog-management/tutorials/search-by-sku"},{"title":"Personalized catalogs","href":"/doc/guides/solutions/ecommerce/b2b-catalog-management/tutorials/personalized-catalogs"},{"title":"Personalized pricing","href":"/doc/guides/solutions/ecommerce/b2b-catalog-management/tutorials/personalized-pricing"}]},{"group":"Visual image search","root":{"title":"Visual image search","sidebarTitle":"Overview","href":"/doc/guides/solutions/ecommerce/visual-image-search"},"pages":[{"title":"Image classification and tagging","href":"/doc/guides/solutions/ecommerce/visual-image-search/tutorials/image-classification-tagging"},{"title":"Search by image","href":"/doc/guides/solutions/ecommerce/visual-image-search/tutorials/search-by-image"}]},{"title":"Build a voice to text search","href":"/doc/guides/solutions/ecommerce/voice-search"}]}]},{"group":"Optimization and Personalization","icon":"cpu","pages":[{"group":"Algolia Recommend","root":{"title":"Algolia Recommend","sidebarTitle":"Overview","href":"/doc/guides/algolia-recommend/overview"},"pages":[{"group":"Upgrade","pages":[{"title":"Upgrade from Recommend JS to InstantSearch.js","sidebarTitle":"From Recommend JS","href":"/doc/guides/algolia-recommend/upgrade/recommend-js"},{"title":"Upgrade from Recommend React to React InstantSearch","sidebarTitle":"From Recommend React","href":"/doc/guides/algolia-recommend/upgrade/recommend-react"}]},{"group":"Guides","pages":[{"title":"Upload events from a CSV file","sidebarTitle":"Upload from CSV","href":"/doc/guides/algolia-recommend/how-to/csv-upload"},{"title":"Set up Algolia Recommend","sidebarTitle":"Set up Recommend","href":"/doc/guides/algolia-recommend/how-to/set-up"},{"title":"Get image-based recommendations with Looking similar","href":"/doc/guides/algolia-recommend/how-to/lookingSimilar"},{"title":"Recommended for you","href":"/doc/guides/algolia-recommend/how-to/recommended-for-you"},{"title":"Personalized recommendations","href":"/doc/guides/algolia-recommend/how-to/personalized-recommendations"},{"title":"Refine recommendations with rules","sidebarTitle":"Recommend rules","href":"/doc/guides/algolia-recommend/how-to/rules"},{"title":"Deduplicate recommendations","href":"/doc/guides/algolia-recommend/how-to/deduplication"}]},{"group":"Analytics","pages":[{"title":"Recommend analytics","sidebarTitle":"Overview","href":"/doc/guides/algolia-recommend/analytics/recommend-analytics"},{"title":"Recommend analytics metrics","sidebarTitle":"Metrics","href":"/doc/guides/algolia-recommend/analytics/metrics"},{"title":"Send events for Recommend analytics","sidebarTitle":"Send events","href":"/doc/guides/algolia-recommend/analytics/send-events"}]}]},{"group":"Personalization","pages":[{"group":"Advanced Personalization","pages":[{"group":"What is Advanced Personalization","root":{"title":"What is Advanced Personalization?","href":"/doc/guides/personalization/advanced-personalization/what-is-advanced-personalization"},"pages":[{"title":"How does Advanced Personalization work?","href":"/doc/guides/personalization/advanced-personalization/what-is-advanced-personalization/in-depth/how-does-advanced-personalization-work"},{"title":"Real-time personalization and historical personalization","href":"/doc/guides/personalization/advanced-personalization/what-is-advanced-personalization/in-depth/real-time-personalization-and-historical-personalization"},{"title":"Migrate from Classic Personalization","href":"/doc/guides/personalization/advanced-personalization/what-is-advanced-personalization/in-depth/migrate-from-classic-personalization"},{"title":"User profiles","href":"/doc/guides/personalization/advanced-personalization/what-is-advanced-personalization/concepts/user-profiles"}]},{"group":"Configure personalization","root":{"title":"Configure personalization","href":"/doc/guides/personalization/advanced-personalization/configure"},"pages":[{"group":"Prerequisites","pages":[{"title":"Prepare your index structure","href":"/doc/guides/personalization/advanced-personalization/configure/prerequisites/index-structure"},{"title":"Prepare your event implementation","href":"/doc/guides/personalization/advanced-personalization/configure/prerequisites/event-implementation"},{"title":"Prepare your search implementation","href":"/doc/guides/personalization/advanced-personalization/configure/prerequisites/search-implementation"},{"title":"Requirements and limits","href":"/doc/guides/personalization/advanced-personalization/configure/prerequisites/consider-requirements-limits"}]},{"group":"Setup","pages":[{"title":"Configure indices to personalize","href":"/doc/guides/personalization/advanced-personalization/configure/setup/indices"},{"title":"Configure user events","href":"/doc/guides/personalization/advanced-personalization/configure/setup/events"},{"title":"Set personalization re-ranking","href":"/doc/guides/personalization/advanced-personalization/configure/setup/personalization-reranking"},{"title":"Enable real-time personalization","href":"/doc/guides/personalization/advanced-personalization/configure/setup/enable-real-time-personalization"}]}]},{"group":"Monitor personalization","root":{"title":"Monitor personalization","href":"/doc/guides/personalization/advanced-personalization/monitor"},"pages":[{"title":"A/B test Advanced Personalization","href":"/doc/guides/personalization/advanced-personalization/monitor/in-depth/ab-test"},{"title":"Troubleshoot Advanced Personalization","href":"/doc/guides/personalization/advanced-personalization/monitor/in-depth/troubleshoot"},{"title":"Inspect a user profile","href":"/doc/guides/personalization/advanced-personalization/monitor/in-depth/inspect-a-user-profile"},{"title":"Delete user profiles","href":"/doc/guides/personalization/advanced-personalization/monitor/in-depth/delete-a-user-profile"},{"title":"Error codes","href":"/doc/guides/personalization/advanced-personalization/monitor/in-depth/error-codes"}]},{"group":"Implement personalization","root":{"title":"Implement personalization","href":"/doc/guides/personalization/advanced-personalization/implement"},"pages":[{"title":"Segment users with rule contexts","href":"/doc/guides/personalization/advanced-personalization/implement/guides/segment-users-with-rule-contexts"},{"title":"Applying contextual affinities","href":"/doc/guides/personalization/advanced-personalization/implement/guides/applying-contextual-affinities"},{"title":"Fetching a user profile","href":"/doc/guides/personalization/advanced-personalization/implement/guides/fetching-a-user-profile"},{"title":"Personalizing search facets","href":"/doc/guides/personalization/advanced-personalization/implement/guides/personalizing-search-facets"},{"title":"Display content with inline segmentation","href":"/doc/guides/personalization/advanced-personalization/implement/guides/inline-segmentation"},{"title":"Label and boost purchased items in search results","href":"/doc/guides/personalization/advanced-personalization/implement/guides/label-and-boost-purchased-items"},{"title":"Personalize product display","href":"/doc/guides/personalization/advanced-personalization/implement/guides/personalizing-product-display"},{"title":"Export user profiles to an audience","href":"/doc/guides/personalization/advanced-personalization/implement/guides/export-audience"}]}]},{"group":"Classic Personalization","pages":[{"group":"What is Personalization","root":{"title":"What is Personalization?","href":"/doc/guides/personalization/classic-personalization/what-is-personalization"},"pages":[{"title":"How Personalization works","href":"/doc/guides/personalization/classic-personalization/what-is-personalization/in-depth/how-personalization-works"}]},{"group":"Personalize results","pages":[{"title":"Personalizing results","href":"/doc/guides/personalization/classic-personalization/personalizing-results"},{"title":"Configure Personalization","href":"/doc/guides/personalization/classic-personalization/personalizing-results/in-depth/configuring-personalization"}]},{"group":"Going to production","root":{"title":"Going to production","href":"/doc/guides/personalization/classic-personalization/going-to-production"},"pages":[{"title":"A/B testing Personalization","href":"/doc/guides/personalization/classic-personalization/going-to-production/how-to/ab-testing-personalization"},{"title":"Enabling Personalization","href":"/doc/guides/personalization/classic-personalization/going-to-production/how-to/enabling-personalization"},{"title":"Personalization implementation checklist","href":"/doc/guides/personalization/classic-personalization/going-to-production/in-depth/implementation-checklist"}]}]}]},{"group":"A/B testing","pages":[{"group":"What is A/B testing","root":{"title":"What is A/B testing","href":"/doc/guides/ab-testing/what-is-ab-testing"},"pages":[{"title":"Create and run an A/B test","href":"/doc/guides/ab-testing/what-is-ab-testing/how-to/create-and-run-an-ab-test"},{"title":"A/B testing API version 3","href":"/doc/guides/ab-testing/what-is-ab-testing/in-depth/api-version-3"},{"title":"Why do A/B testing?","href":"/doc/guides/ab-testing/what-is-ab-testing/in-depth/why-do-ab-testing"},{"title":"How A/B test scores are calculated","href":"/doc/guides/ab-testing/what-is-ab-testing/in-depth/how-ab-test-scores-are-calculated"},{"title":"Bayesian experimentation","href":"/doc/guides/ab-testing/what-is-ab-testing/in-depth/bayesian-experimentation"},{"title":"How traffic splits affect A/B test results","href":"/doc/guides/ab-testing/what-is-ab-testing/in-depth/how-traffic-splits-affect-results"},{"title":"Multi-variant testing","href":"/doc/guides/ab-testing/what-is-ab-testing/in-depth/multi-variant-testing"},{"title":"Declare and adopt an A/B test winner","href":"/doc/guides/ab-testing/what-is-ab-testing/how-to/adopt-ab-test-winner"}]},{"title":"A/B test implementation checklist","href":"/doc/guides/ab-testing/ab-test-implementation-checklist"},{"title":"How to read your A/B test results","href":"/doc/guides/ab-testing/how-to-read-your-a-b-test-results"}]}]},{"group":"AI-powered experiences","icon":"brain","pages":[{"group":"AI Guides","root":{"title":"AI guides","href":"/doc/guides/algolia-ai/generative-experiences"},"pages":[{"group":"How to","pages":[{"title":"Create Guides","href":"/doc/guides/algolia-ai/generative-experiences/guides/generating-guides"},{"title":"Integrate Guides into your website","sidebarTitle":"Integrate Guides","href":"/doc/guides/algolia-ai/generative-experiences/guides/using-guides"},{"title":"Publish Guides","href":"/doc/guides/algolia-ai/generative-experiences/guides/publishing-guides"}]},{"group":"UI components","pages":[{"title":"GuidesHeadlines","href":"/doc/guides/algolia-ai/generative-experiences/ui-library/headlines"},{"title":"GuideContent","href":"/doc/guides/algolia-ai/generative-experiences/ui-library/content"},{"title":"GuidesFeedback","href":"/doc/guides/algolia-ai/generative-experiences/ui-library/feedback"},{"title":"Alternative implementations","href":"/doc/guides/algolia-ai/generative-experiences/ui-library/alternatives"}]}]},{"group":"Agent Studio","root":{"title":"Agent Studio","sidebarTitle":"Overview","href":"/doc/guides/algolia-ai/agent-studio"},"pages":[{"group":"Get started","root":{"title":"Build your first agent","href":"/doc/guides/algolia-ai/agent-studio/how-to/quickstart"},"pages":[{"title":"Create and edit agents in the dashboard","sidebarTitle":"Dashboard","href":"/doc/guides/algolia-ai/agent-studio/how-to/dashboard"},{"title":"Connect LLM providers","sidebarTitle":"LLM providers","href":"/doc/guides/algolia-ai/agent-studio/how-to/llm-providers"},{"title":"Integrate Agent Studio","href":"/doc/guides/algolia-ai/agent-studio/how-to/integration"}]},{"group":"Extend","root":{"title":"Use tools in Agent Studio","sidebarTitle":"Tools overview","href":"/doc/guides/algolia-ai/agent-studio/how-to/tools/overview"},"pages":[{"title":"Algolia Search tool","sidebarTitle":"Search tool","href":"/doc/guides/algolia-ai/agent-studio/how-to/tools/algolia-search"},{"title":"Grouped Results tool","href":"/doc/guides/algolia-ai/agent-studio/how-to/tools/grouped-results"},{"title":"Client-side tools","href":"/doc/guides/algolia-ai/agent-studio/how-to/tools/client-side-tools"},{"title":"MCP tools","href":"/doc/guides/algolia-ai/agent-studio/how-to/tools/mcp-tools"},{"title":"Memory","href":"/doc/guides/algolia-ai/agent-studio/how-to/memory/overview"},{"title":"Agent-to-agent (A2A)","href":"/doc/guides/algolia-ai/agent-studio/how-to/agent-to-agent"}]},{"group":"Customize","pages":[{"title":"Tips for writing efficient prompts","sidebarTitle":"Prompting","href":"/doc/guides/algolia-ai/agent-studio/how-to/prompting"},{"title":"Generate prompt suggestions for your pages","sidebarTitle":"Prompt suggestions","href":"/doc/guides/algolia-ai/agent-studio/how-to/prompt-suggestions"},{"title":"Generate searchable prompt suggestions","sidebarTitle":"Searchable prompt suggestions","href":"/doc/guides/algolia-ai/agent-studio/how-to/searchable-prompt-suggestions"},{"title":"Compare products in chat","sidebarTitle":"Product comparison","href":"/doc/guides/algolia-ai/agent-studio/how-to/product-comparison"},{"title":"Add an AI Overview card to search results","sidebarTitle":"Result card","href":"/doc/guides/algolia-ai/agent-studio/how-to/result-card"},{"title":"Conversations","href":"/doc/guides/algolia-ai/agent-studio/how-to/conversations"},{"title":"Shrink long conversations","sidebarTitle":"Context management","href":"/doc/guides/algolia-ai/agent-studio/how-to/context-management"},{"title":"Per-turn context","href":"/doc/guides/algolia-ai/agent-studio/how-to/turn-context"},{"title":"Cache agent responses","sidebarTitle":"Caching","href":"/doc/guides/algolia-ai/agent-studio/how-to/caching"},{"title":"Analytics","href":"/doc/guides/algolia-ai/agent-studio/how-to/analytics"},{"title":"Evaluations","href":"/doc/guides/algolia-ai/agent-studio/how-to/evaluations"},{"title":"Collect feedback on agent messages","sidebarTitle":"Collecting feedback","href":"/doc/guides/algolia-ai/agent-studio/how-to/feedback"},{"title":"Experimental features","href":"/doc/guides/algolia-ai/agent-studio/how-to/experimental-features"},{"title":"Search prefetch","href":"/doc/guides/algolia-ai/agent-studio/how-to/search-prefetch"}]},{"group":"Security","pages":[{"title":"User authentication","href":"/doc/guides/algolia-ai/agent-studio/how-to/user-authentication"},{"title":"Approved domains","href":"/doc/guides/algolia-ai/agent-studio/how-to/approved-domains"},{"title":"Guardrails","sidebarTitle":"Guardrails","href":"/doc/guides/algolia-ai/agent-studio/how-to/guardrails"},{"title":"Security and credentials","href":"/doc/guides/algolia-ai/agent-studio/how-to/tools/security"}]},{"group":"Reference","pages":[{"title":"Configure your agents and app","sidebarTitle":"Configuration","href":"/doc/guides/algolia-ai/agent-studio/how-to/agent-configuration"}]}]},{"group":"Model Context Protocol","root":{"title":"MCP Server (Model Context Protocol)","sidebarTitle":"Overview","href":"/doc/guides/model-context-protocol"},"pages":[{"title":"Get started with Algolia Public MCP","sidebarTitle":"Public MCP","href":"/doc/guides/model-context-protocol/public-mcp"},{"title":"Get started with Algolia Productivity MCP","sidebarTitle":"Productivity MCP","href":"/doc/guides/model-context-protocol/productivity-mcp"},{"title":"Add Algolia to your app with DevEx MCP","sidebarTitle":"DevEx MCP","href":"/doc/guides/model-context-protocol/devex-mcp"}]},{"group":"Ask AI","root":{"title":"Ask AI","href":"/doc/guides/algolia-ai/askai"},"pages":[{"title":"Migrate Ask AI to Agent Studio","href":"/doc/guides/algolia-ai/askai/guides/migrate-to-agent-studio"},{"title":"Enable and configure Ask AI","href":"/doc/guides/algolia-ai/askai/guides/setup"},{"title":"Supported LLMs","mode":"wide","href":"/doc/guides/algolia-ai/askai/guides/models"},{"title":"Markdown indexing","href":"/doc/guides/algolia-ai/askai/guides/markdown-indexing"},{"title":"Suggested questions","href":"/doc/guides/algolia-ai/askai/guides/suggested-questions"},{"title":"Measure Ask AI performance","href":"/doc/guides/algolia-ai/askai/guides/metrics"},{"title":"Safeguards","href":"/doc/guides/algolia-ai/askai/guides/safety"},{"title":"Reduce token usage","href":"/doc/guides/algolia-ai/askai/guides/cost-optimization"},{"title":"Ask AI API reference","href":"/doc/guides/algolia-ai/askai/reference/api"}]}]},{"group":"Production and scale","icon":"layers","pages":[{"group":"Going to production","pages":[{"title":"Implementation checklist","href":"/doc/guides/going-to-production/implementation-checklist"},{"title":"Track usage and performance in the dashboard","href":"/doc/guides/going-to-production/track-usage"},{"title":"Case study for an online clothing company","href":"/doc/guides/going-to-production/case-study"}]},{"group":"Scaling","pages":[{"group":"Infrastructure","root":{"title":"Infrastructure","sidebarTitle":"Overview","description":"Learn about Algolia's infrastructure","href":"/doc/guides/scaling/infrastructure"},"pages":[{"group":"Classic","pages":[{"title":"Servers and clusters","href":"/doc/guides/scaling/infrastructure/classic/servers-clusters"},{"title":"Distributed Search Network (DSN)","description":"The Distributed Search Network makes search faster by adding extra servers close to your users.","href":"/doc/guides/scaling/infrastructure/classic/distributed-search-network-dsn"},{"title":"Capacity alerts","href":"/doc/guides/scaling/infrastructure/classic/capacity-alerts"}]},{"title":"Dynamic scaling infrastructure","href":"/doc/guides/scaling/infrastructure/dynamic/dynamic"}]},{"title":"Large indexing jobs","href":"/doc/guides/scaling/scaling-to-larger-datasets"},{"title":"Algolia service limits","href":"/doc/guides/scaling/algolia-service-limits"},{"group":" ","hidden":true,"searchable":true,"pages":[{"title":"Multi-cluster management (MCM)","href":"/doc/guides/scaling/managing-multiple-clusters-mcm"},{"title":"Implementing MCM","href":"/doc/guides/scaling/managing-multiple-clusters-mcm/how-to/implement-multi-clusters"}]}]},{"group":"Security","pages":[{"group":"API keys","root":{"title":"API keys","sidebarTitle":"Overview","href":"/doc/guides/security/api-keys"},"pages":[{"title":"User-restricted access to data","href":"/doc/guides/security/api-keys/how-to/user-restricted-access-to-data"},{"title":"How to restore an API key","href":"/doc/guides/security/api-keys/how-to/how-to-restore-an-api-key"},{"title":"API key restrictions","href":"/doc/guides/security/api-keys/in-depth/api-key-restrictions"}]},{"title":"Security best practices","href":"/doc/guides/security/security-best-practices"},{"title":"Shared responsibility","href":"/doc/guides/security/security-best-practices/in-depth/shared-responsibility"},{"title":"Algolia Vault","href":"/doc/guides/security/algolia-vault"}]},{"group":"Value Engineering","root":{"title":"Value Engineering","href":"/doc/value-engineering"},"pages":[{"title":"Radar","href":"/doc/value-engineering/radar"},{"title":"Deploy Radar","href":"/doc/value-engineering/deploy"},{"title":"Radar data and privacy","sidebarTitle":"Data and privacy","href":"/doc/value-engineering/data-and-privacy"}]},{"group":"Account management","pages":[{"title":"Manage your Algolia applications","sidebarTitle":"Manage your apps","href":"/doc/guides/sending-and-managing-data/manage-indices-and-apps/manage-your-apps"},{"title":"Set up Algolia through the AWS Marketplace","sidebarTitle":"Set up billing through AWS Marketplace","href":"/doc/guides/billing/marketplaces/amazon-web-services"}]}]}]},{"tab":"Libraries and tools","icon":"wrench","menu":[{"item":"API clients","versions":[{"version":"current","groups":[{"group":"current","pages":[{"title":"current","href":"/doc/libraries/sdk"}]}]},{"version":"legacy","groups":[{"group":"legacy","pages":[{"title":"legacy","href":"/doc/libraries/sdk/v1/install"}]}]}]},{"item":"Algolia CLI","pages":[{"title":"Algolia CLI","href":"/doc/tools/cli/get-started"}]},{"item":"Algolia Wizard","pages":[{"title":"Algolia Wizard","href":"/doc/tools/algolia-wizard"}]},{"item":"Crawler","pages":[{"title":"Crawler","href":"/doc/tools/crawler/getting-started/overview"}]},{"item":"Django","pages":[{"title":"Django","href":"/doc/framework-integration/django/setup"}]},{"item":"Laravel","pages":[{"title":"Laravel","href":"/doc/framework-integration/laravel/getting-started/introduction-to-scout-extended"}]},{"item":"Ruby on Rails","pages":[{"title":"Ruby on Rails","href":"/doc/framework-integration/rails/getting-started/setup"}]},{"item":"Symfony","pages":[{"title":"Symfony","href":"/doc/framework-integration/symfony/getting-started/algolia-searchbundle"}]},{"item":"All libraries and tools","pages":[{"title":"All libraries and tools","href":"/doc/libraries"}]}],"pages":[{"title":"Libraries and tools","href":"/doc/libraries/sdk"}]},{"tab":"UI libraries","icon":"proportions","menu":[{"item":"InstantSearch.js","pages":[{"title":"InstantSearch.js","href":"/doc/api-reference/widgets/js"}]},{"item":"React InstantSearch","pages":[{"title":"React InstantSearch","href":"/doc/api-reference/widgets/react"}]},{"item":"Vue InstantSearch","pages":[{"title":"Vue InstantSearch","href":"/doc/api-reference/widgets/vue"}]},{"item":"InstantSearch iOS","pages":[{"title":"InstantSearch iOS","href":"/doc/api-reference/widgets/ios"}]},{"item":"InstantSearch Android","pages":[{"title":"InstantSearch Android","href":"/doc/api-reference/widgets/android"}]},{"item":"Algolia for Flutter","pages":[{"title":"Algolia for Flutter","href":"/doc/api-reference/widgets/flutter"}]},{"item":"Autocomplete","pages":[{"title":"Autocomplete","href":"/doc/ui-libraries/autocomplete/introduction/what-is-autocomplete"}]},{"item":"All UI libraries","pages":[{"title":"All UI libraries","href":"/doc/ui-libraries"}]}],"pages":[{"title":"UI libraries","href":"/doc/api-reference/widgets/js"}]},{"tab":"Integrations","icon":"plug","menu":[{"item":"Adobe Commerce/Magento","pages":[{"title":"Adobe Commerce/Magento","href":"/doc/integration/magento-2/getting-started/quick-start"}]},{"item":"BigCommerce","pages":[{"title":"BigCommerce","href":"/doc/integration/bigcommerce/get-started/installation"}]},{"item":"commercetools","pages":[{"title":"commercetools","href":"/doc/integration/commercetools/get-started/installation"}]},{"item":"Make","pages":[{"title":"Make","href":"/doc/integration/make"}]},{"item":"n8n","pages":[{"title":"n8n","href":"/doc/integration/n8n"}]},{"item":"Salesforce B2C Commerce","pages":[{"title":"Salesforce B2C Commerce","href":"/doc/integration/salesforce-commerce-cloud-b2c/getting-started/introduction"}]},{"item":"Shopify","pages":[{"title":"Shopify","href":"/doc/integration/shopify/getting-started/quick-start"}]},{"item":"Stripe Projects","pages":[{"title":"Stripe Projects","href":"/doc/integration/stripe-projects"}]},{"item":"Zapier","pages":[{"title":"Zapier","href":"/doc/integration/zapier"}]},{"item":"Zendesk","pages":[{"title":"Zendesk","href":"/doc/integration/zendesk/get-started"}]},{"item":"Vercel","pages":[{"title":"Vercel","href":"/doc/integration/vercel"}]},{"item":"All integrations","pages":[{"title":"All integrations","href":"/doc/integration"}]}],"pages":[{"title":"Integrations","href":"/doc/integration/magento-2/getting-started/quick-start"}]},{"tab":"API reference","icon":"code","menu":[{"item":"Search","pages":[{"title":"Search","href":"/doc/rest-api/search"}]},{"item":"Agent Studio","pages":[{"title":"Agent Studio","href":"/doc/rest-api/agent-studio"}]},{"item":"A/B testing","pages":[{"title":"A/B testing","href":"/doc/rest-api/abtesting-v3"}]},{"item":"Advanced Personalization","pages":[{"title":"Advanced Personalization","href":"/doc/rest-api/advanced-personalization"}]},{"item":"Analytics","pages":[{"title":"Analytics","href":"/doc/rest-api/analytics"}]},{"item":"Classic Personalization","pages":[{"title":"Classic Personalization","href":"/doc/rest-api/personalization"}]},{"item":"Composition","pages":[{"title":"Composition","href":"/doc/rest-api/composition"}]},{"item":"Crawler","pages":[{"title":"Crawler","href":"/doc/rest-api/crawler"}]},{"item":"Ingestion","pages":[{"title":"Ingestion","href":"/doc/rest-api/ingestion"}]},{"item":"Insights","pages":[{"title":"Insights","href":"/doc/rest-api/insights"}]},{"item":"Monitoring","pages":[{"title":"Monitoring","href":"/doc/rest-api/monitoring"}]},{"item":"Recommend","pages":[{"title":"Recommend","href":"/doc/rest-api/recommend"}]},{"item":"Query Suggestions","pages":[{"title":"Query Suggestions","href":"/doc/rest-api/query-suggestions"}]},{"item":"Suggested Actions","pages":[{"title":"Suggested Actions","href":"/doc/rest-api/suggested-actions"}]},{"item":"Usage","pages":[{"title":"Usage","href":"/doc/rest-api/usage"}]},{"item":"All APIs","pages":[{"title":"All APIs","href":"/doc/rest-api"}]}],"pages":[{"title":"API reference","href":"/doc/rest-api/search"}]}]},"basePath":"","title":"Servers and clusters - Algolia","buildId":"dpl_DqYu5MPb49gWBBbUGgpHQUmCHY3P","deploymentId":"dpl_DqYu5MPb49gWBBbUGgpHQUmCHY3P","dynamics":[],"chunks":[]}