[{"data":1,"prerenderedAt":831},["ShallowReactive",2],{"docs-navigation":3,"docs-\u002Fdocs\u002Findexing\u002Fversions":331,"docs-\u002Fdocs\u002Findexing\u002Fversions-surround":828},[4],{"title":5,"path":6,"stem":7,"children":8,"page":46},"Docs","\u002Fdocs","docs",[9,47,72,90,132,198,241,252,276,301],{"title":10,"description":11,"icon":12,"path":13,"stem":14,"children":15,"page":46},"Getting started","What Zaproo Search is, a quickstart, and wiring search into a storefront.","i-lucide-rocket","\u002Fdocs\u002Fgetting-started","docs\u002F1.getting-started",[16,22,28,34,40],{"title":17,"path":18,"stem":19,"description":20,"icon":21},"Introduction","\u002Fdocs\u002Fgetting-started\u002Fintroduction","docs\u002F1.getting-started\u002F1.introduction","What Zaproo Search is, the five things you work with, and how a product catalog becomes a search box on your shop.","i-lucide-book-open-text",{"title":23,"path":24,"stem":25,"description":26,"icon":27},"Quickstart","\u002Fdocs\u002Fgetting-started\u002Fquickstart","docs\u002F1.getting-started\u002F2.quickstart","Set up search for your shop in the cabinet, from a new account to a first search, with the API and MCP as other ways to do the same.","i-lucide-zap",{"title":29,"path":30,"stem":31,"description":32,"icon":33},"Integrate a storefront","\u002Fdocs\u002Fgetting-started\u002Fstorefront","docs\u002F1.getting-started\u002F3.storefront","Build a search results page with facets and an autocomplete box on top of the search and suggest routes.","i-lucide-store",{"title":35,"path":36,"stem":37,"description":38,"icon":39},"JavaScript SDK","\u002Fdocs\u002Fgetting-started\u002Fjavascript-sdk","docs\u002F1.getting-started\u002F4.javascript-sdk","Search, autocomplete and event tracking from a storefront with one small client that runs in the browser, on your server and in edge functions.","i-lucide-braces",{"title":41,"path":42,"stem":43,"description":44,"icon":45},"AI shopping assistant","\u002Fdocs\u002Fgetting-started\u002Fai-assistant","docs\u002F1.getting-started\u002F5.ai-assistant","A chat widget for your storefront that finds products and answers questions from your indexes.","i-lucide-sparkles",false,{"title":48,"description":49,"icon":50,"path":51,"stem":52,"children":53,"page":46},"Account and team","Sign-in, sessions, organizations, members, roles and projects.","i-lucide-users","\u002Fdocs\u002Faccount","docs\u002F2.account",[54,60,66],{"title":55,"path":56,"stem":57,"description":58,"icon":59},"Account and sign-in","\u002Fdocs\u002Faccount\u002Fsign-in","docs\u002F2.account\u002F1.sign-in","Create an account, verify your email, stay signed in, manage signed-in devices and change or reset your password.","i-lucide-log-in",{"title":61,"path":62,"stem":63,"description":64,"icon":65},"Organizations, members and roles","\u002Fdocs\u002Faccount\u002Forganizations","docs\u002F2.account\u002F2.organizations","What an organization holds, how to add members, and what owners, admins and members may do.","i-lucide-building-2",{"title":67,"path":68,"stem":69,"description":70,"icon":71},"Projects","\u002Fdocs\u002Faccount\u002Fprojects","docs\u002F2.account\u002F3.projects","Group the indices and API keys of one shop or one environment, and keep staging apart from production.","i-lucide-folder-kanban",{"title":73,"description":74,"icon":75,"path":76,"stem":77,"children":78,"page":46},"API keys and security","Secret and public keys, scopes, allowed origins, rate limits and errors.","i-lucide-key-round","\u002Fdocs\u002Fkeys","docs\u002F3.keys",[79,84],{"title":80,"path":81,"stem":82,"description":83,"icon":75},"API keys","\u002Fdocs\u002Fkeys\u002Fapi-keys","docs\u002F3.keys\u002F1.api-keys","Secret and public keys, full and read access, index scope, allowed origins, expiry, and how to revoke a key.",{"title":85,"path":86,"stem":87,"description":88,"icon":89},"Rate limits and errors","\u002Fdocs\u002Fkeys\u002Frate-limits","docs\u002F3.keys\u002F2.rate-limits","How many requests each route accepts per minute, what a 429 looks like, the error format and every error code with its HTTP status.","i-lucide-gauge",{"title":91,"description":92,"icon":93,"path":94,"stem":95,"children":96,"page":46},"Indexing","Indices, languages, mappings, documents, tasks, full catalog sync and reindexing.","i-lucide-database","\u002Fdocs\u002Findexing","docs\u002F4.indexing",[97,102,108,114,120,126],{"title":98,"path":99,"stem":100,"description":101,"icon":93},"Indices and languages","\u002Fdocs\u002Findexing\u002Findices","docs\u002F4.indexing\u002F1.indices","Create an index, pick its language, read its status, and change the language later with a reindex.",{"title":103,"path":104,"stem":105,"description":106,"icon":107},"Mapping and fields","\u002Fdocs\u002Findexing\u002Fmapping","docs\u002F4.indexing\u002F2.mapping","Field types, the five flags that decide what a field is used for, text analysis options, unmapped fields, and which changes need a reindex.","i-lucide-table-properties",{"title":109,"path":110,"stem":111,"description":112,"icon":113},"Documents and tasks","\u002Fdocs\u002Findexing\u002Fdocuments","docs\u002F4.indexing\u002F3.documents","Upload, browse and delete documents in the cabinet or through the API, follow each write as a task, and retry safely with Idempotency-Key.","i-lucide-file-json",{"title":115,"path":116,"stem":117,"description":118,"icon":119},"Full catalog sync","\u002Fdocs\u002Findexing\u002Ffull-sync","docs\u002F4.indexing\u002F4.full-sync","Replace the whole catalog with a replace session, so products missing from your export disappear from search, without downtime.","i-lucide-refresh-cw",{"title":121,"path":122,"stem":123,"description":124,"icon":125},"Reindex and versions","\u002Fdocs\u002Findexing\u002Fversions","docs\u002F4.indexing\u002F5.versions","Rebuild an index with its saved mapping and swap it in without downtime, follow or cancel the rebuild, and read activeVersion and buildingVersion.","i-lucide-git-compare-arrows",{"title":127,"path":128,"stem":129,"description":130,"icon":131},"Data source","\u002Fdocs\u002Findexing\u002Fdata-source","docs\u002F4.indexing\u002F6.data-source","Let Zaproo download your product feed on a schedule, map it to documents, write only what changed and delete what left the feed.","i-lucide-rss",{"title":133,"description":134,"icon":135,"path":136,"stem":137,"children":138,"page":46},"Integrations","Connect your shop. Magento 2, product feeds and the API work today; more platforms are coming.","i-lucide-plug-zap","\u002Fdocs\u002Fintegrations","docs\u002F4.integrations",[139,145,151,156,162,168,173,178,183,188,193],{"title":140,"path":141,"stem":142,"description":143,"icon":144},"Integrations overview","\u002Fdocs\u002Fintegrations\u002Foverview","docs\u002F4.integrations\u002F01.overview","The ways to get your catalog into Zaproo Search, which one to pick, and how a connected shop shows up in the cabinet.","i-lucide-layout-grid",{"title":146,"path":147,"stem":148,"description":149,"icon":150},"Magento 2","\u002Fdocs\u002Fintegrations\u002Fmagento","docs\u002F4.integrations\u002F02.magento","Install the Zaproo Search module for Magento 2, connect each store view to its own index, and keep the catalog in sync.","i-lucide-shopping-cart",{"title":152,"path":153,"stem":154,"description":155,"icon":131},"Product feed","\u002Fdocs\u002Fintegrations\u002Fproduct-feed","docs\u002F4.integrations\u002F03.product-feed","Connect any shop that can publish its catalog as a feed. You set it up in the cabinet, and Zaproo downloads the feed on a schedule and writes only what changed.",{"title":157,"path":158,"stem":159,"description":160,"icon":161},"REST API and MCP","\u002Fdocs\u002Fintegrations\u002Frest-api-and-mcp","docs\u002F4.integrations\u002F04.rest-api-and-mcp","Send documents from your own code with the REST API, or let an AI agent manage the index over MCP.","i-lucide-code",{"title":163,"path":164,"stem":165,"description":166,"icon":167},"Shopify","\u002Fdocs\u002Fintegrations\u002Fshopify","docs\u002F4.integrations\u002F05.shopify","A Zaproo Search integration for Shopify is coming soon. Until then, connect the shop through a product feed or the REST API.","i-lucide-shopping-bag",{"title":169,"path":170,"stem":171,"description":172,"icon":167},"WooCommerce","\u002Fdocs\u002Fintegrations\u002Fwoocommerce","docs\u002F4.integrations\u002F06.woocommerce","A Zaproo Search integration for WooCommerce is coming soon. Until then, connect the shop through a product feed or the REST API.",{"title":174,"path":175,"stem":176,"description":177,"icon":167},"Shopware","\u002Fdocs\u002Fintegrations\u002Fshopware","docs\u002F4.integrations\u002F07.shopware","A Zaproo Search integration for Shopware is coming soon. Until then, connect the shop through a product feed or the REST API.",{"title":179,"path":180,"stem":181,"description":182,"icon":167},"BigCommerce","\u002Fdocs\u002Fintegrations\u002Fbigcommerce","docs\u002F4.integrations\u002F08.bigcommerce","A Zaproo Search integration for BigCommerce is coming soon. Until then, connect the shop through a product feed or the REST API.",{"title":184,"path":185,"stem":186,"description":187,"icon":167},"PrestaShop","\u002Fdocs\u002Fintegrations\u002Fprestashop","docs\u002F4.integrations\u002F09.prestashop","A Zaproo Search integration for PrestaShop is coming soon. Until then, connect the shop through a product feed or the REST API.",{"title":189,"path":190,"stem":191,"description":192,"icon":167},"commercetools","\u002Fdocs\u002Fintegrations\u002Fcommercetools","docs\u002F4.integrations\u002F10.commercetools","A Zaproo Search integration for commercetools is coming soon. Until then, connect the shop through a product feed or the REST API.",{"title":194,"path":195,"stem":196,"description":197,"icon":167},"Salesforce Commerce Cloud","\u002Fdocs\u002Fintegrations\u002Fsalesforce-commerce-cloud","docs\u002F4.integrations\u002F11.salesforce-commerce-cloud","A Zaproo Search integration for Salesforce Commerce Cloud is coming soon. Until then, connect the shop through a product feed or the REST API.",{"title":199,"description":200,"icon":201,"path":202,"stem":203,"children":204,"page":46},"Search and relevance","The search API, search profiles, facets, synonyms and ranking rules.","i-lucide-search","\u002Fdocs\u002Fsearch","docs\u002F5.search",[205,211,217,223,229,235],{"title":206,"path":207,"stem":208,"description":209,"icon":210},"Search API","\u002Fdocs\u002Fsearch\u002Fsearch-api","docs\u002F5.search\u002F1.search-api","Try a search in the playground, then the search request and response for developers, with every filter form, sorting, paging, highlighting and the inline profile.","i-lucide-search-code",{"title":212,"path":213,"stem":214,"description":215,"icon":216},"Search profiles","\u002Fdocs\u002Fsearch\u002Fprofiles","docs\u002F5.search\u002F2.profiles","Every setting of a search profile, what it does to results, and the mistakes to avoid.","i-lucide-sliders-horizontal",{"title":218,"path":219,"stem":220,"description":221,"icon":222},"Facets","\u002Fdocs\u002Fsearch\u002Ffacets","docs\u002F5.search\u002F3.facets","The filter panels next to the results, the four facet types, index facets and profile facets, and how a shopper's clicks change the counts.","i-lucide-list-filter",{"title":224,"path":225,"stem":226,"description":227,"icon":228},"Synonyms","\u002Fdocs\u002Fsearch\u002Fsynonyms","docs\u002F5.search\u002F4.synonyms","Let different words find the same products, with equivalent and one-way rules, bulk import and export in the Solr format, and no reindex.","i-lucide-arrow-left-right",{"title":230,"path":231,"stem":232,"description":233,"icon":234},"Ranking rules","\u002Fdocs\u002Fsearch\u002Frules","docs\u002F5.search\u002F5.rules","Change the results for chosen searches. Put products first, hide them, lift or lower a brand, narrow the results or weigh fields differently, on a schedule and per profile.","i-lucide-list-ordered",{"title":236,"path":237,"stem":238,"description":239,"icon":240},"Language groups","\u002Fdocs\u002Fsearch\u002Flanguage-groups","docs\u002F5.search\u002F6.language-groups","Let each store of a multilingual shop find its products by the other stores' text, so an English search on the Estonian store still finds the Estonian product.","i-lucide-languages",{"title":242,"description":243,"icon":244,"path":245,"stem":246,"children":247,"page":46},"Autocomplete","Query suggestions as the shopper types.","i-lucide-text-cursor-input","\u002Fdocs\u002Fautocomplete","docs\u002F6.autocomplete",[248],{"title":242,"path":249,"stem":250,"description":251,"icon":244},"\u002Fdocs\u002Fautocomplete\u002Fsuggestions","docs\u002F6.autocomplete\u002F1.suggestions","Set up query suggestions in the cabinet. They are built every hour from your shoppers' searches, field values and custom entries.",{"title":253,"description":254,"icon":255,"path":256,"stem":257,"children":258,"page":46},"Analytics","Searches, zero-result queries and latency.","i-lucide-chart-line","\u002Fdocs\u002Fanalytics","docs\u002F7.analytics",[259,264,270],{"title":260,"path":261,"stem":262,"description":263,"icon":255},"Search analytics","\u002Fdocs\u002Fanalytics\u002Fsearch-analytics","docs\u002F7.analytics\u002F1.search-analytics","What the analytics page counts, which traffic it leaves out, how the headline numbers are defined, how comparisons and retention work, and how to get the weekly digest.",{"title":265,"path":266,"stem":267,"description":268,"icon":269},"Reports","\u002Fdocs\u002Fanalytics\u002Freports","docs\u002F7.analytics\u002F2.reports","Every analytics report with the definition of each column, the opportunities list and its fix buttons, the per-query view with before and after, and the CSV download.","i-lucide-table",{"title":271,"path":272,"stem":273,"description":274,"icon":275},"Event tracking","\u002Fdocs\u002Fanalytics\u002Fevent-tracking","docs\u002F7.analytics\u002F3.event-tracking","Send clicks, add-to-cart, purchases and suggestion clicks from your storefront, tie them to the search with searchId, and a copy-paste script that does it.","i-lucide-mouse-pointer-click",{"title":277,"description":278,"icon":279,"path":280,"stem":281,"children":282,"page":46},"AI agents (MCP)","Connect Claude Code or any MCP client and manage search from an agent.","i-lucide-bot","\u002Fdocs\u002Fmcp","docs\u002F8.mcp",[283,289,295],{"title":284,"path":285,"stem":286,"description":287,"icon":288},"MCP setup","\u002Fdocs\u002Fmcp\u002Fsetup","docs\u002F8.mcp\u002F1.setup","Connect Claude Code or another MCP client to your project from the cabinet's MCP connection page, and let an agent manage indices, documents, profiles, synonyms and rules.","i-lucide-plug",{"title":290,"path":291,"stem":292,"description":293,"icon":294},"MCP tools","\u002Fdocs\u002Fmcp\u002Ftools","docs\u002F8.mcp\u002F2.tools","Every tool the Zaproo Search MCP server offers, what an agent can do with each group, and prompts to start from.","i-lucide-wrench",{"title":296,"path":297,"stem":298,"description":299,"icon":300},"Resources and prompts","\u002Fdocs\u002Fmcp\u002Fresources","docs\u002F8.mcp\u002F3.resources","The index resources an MCP client can read, the tune_relevance prompt, and the errors the MCP server answers.","i-lucide-library",{"title":302,"description":303,"icon":304,"path":305,"stem":306,"children":307,"page":46},"Reference","Every REST route, every limit, plans and billing, and status.","i-lucide-book-open","\u002Fdocs\u002Freference","docs\u002F9.reference",[308,314,319,325],{"title":309,"path":310,"stem":311,"description":312,"icon":313},"REST API","\u002Fdocs\u002Freference\u002Frest-api","docs\u002F9.reference\u002F1.rest-api","The routes of the Zaproo Search REST API, grouped by area, with who may call it.","i-lucide-list-tree",{"title":315,"path":316,"stem":317,"description":318,"icon":89},"Limits","\u002Fdocs\u002Freference\u002Flimits","docs\u002F9.reference\u002F2.limits","Every size limit, cap and default of the Zaproo Search API in one place, with what happens when you reach it.",{"title":320,"path":321,"stem":322,"description":323,"icon":324},"Plans and billing","\u002Fdocs\u002Freference\u002Fbilling","docs\u002F9.reference\u002F3.billing","Check your plan and usage on the Billing & usage page, change the plan, download invoices, and see how quotas and proration work.","i-lucide-credit-card",{"title":326,"path":327,"stem":328,"description":329,"icon":330},"Status","\u002Fdocs\u002Freference\u002Fstatus","docs\u002F9.reference\u002F4.status","The status page and the status route, what each service covers and how to use them in your own monitoring.","i-lucide-activity",{"id":332,"title":121,"body":333,"description":124,"extension":823,"meta":824,"navigation":825,"path":122,"seo":826,"stem":123,"__hash__":827},"docs\u002Fdocs\u002F4.indexing\u002F5.versions.md",{"type":334,"value":335,"toc":813},"minimark",[336,341,364,367,391,397,401,404,422,432,447,451,596,602,631,635,658,664,668,691,698,702,715,728,731,734,737,756,760,783,787,809],[337,338,340],"h2",{"id":339},"why-reindex","Why reindex",[342,343,344,345,349,350,354,355,359,360,363],"p",{},"Some ",[346,347,348],"a",{"href":104},"mapping"," changes cannot apply to documents already stored: a new type, a field made searchable, a text analysis option, a new index language, a field your documents already carried. Zaproo saves such a change and marks the index ",[351,352,353],"code",{},"NEEDS_REINDEX",". Search keeps the previous mapping until a reindex rebuilds the index with the saved one. The cabinet then shows a ",[356,357,358],"strong",{},"Reindex needed"," warning on the index overview and on ",[356,361,362],{},"Fields & mapping",".",[342,365,366],{},"Reindex when:",[368,369,370,377,383],"ul",{},[371,372,373,374,376],"li",{},"the index status is ",[351,375,353],{},";",[371,378,379,380,376],{},"the last build failed and the status is ",[351,381,382],{},"FAILED",[371,384,385,386,390],{},"you mapped an ",[346,387,389],{"href":388},"\u002Fdocs\u002Findexing\u002Fmapping#unmapped-fields","unmapped field"," and want search to cover the documents already uploaded.",[342,392,393,394,363],{},"A reindex rebuilds from the documents the index already stores, unmapped fields included. You do not send anything again. To rebuild from your own source data instead, use a ",[346,395,396],{"href":116},"full catalog sync",[337,398,400],{"id":399},"versions","Versions",[342,402,403],{},"Behind every index are numbered versions. Search reads exactly one of them.",[368,405,406,412],{},[371,407,408,411],{},[351,409,410],{},"activeVersion"," is the version search reads. A new index starts at 1.",[371,413,414,417,418,421],{},[351,415,416],{},"buildingVersion"," is the version being built, or ",[351,419,420],{},"null",". Only one version builds at a time.",[342,423,424,425,428,429,431],{},"A reindex or a replace session builds ",[351,426,427],{},"activeVersion + 1",". When it is done, search moves to it in one step and ",[351,430,410],{}," goes up by one. The previous version is kept for 24 hours, then deleted. There is no rollback through the API.",[342,433,434,435,438,439,442,443,446],{},"The cabinet shows ",[356,436,437],{},"Active version"," on the ",[356,440,441],{},"Indices"," list and the index overview. The ",[356,444,445],{},"Reindex"," panel shows the index status, the live version and, while one builds, the building version.",[337,448,450],{"id":449},"start-a-reindex","Start a reindex",[452,453,454,504,575],"tabs",{},[455,456,458,491,496],"tabs-item",{"icon":275,"label":457},"Cabinet",[459,460,461,473,480],"ol",{},[371,462,463,464,466,467,469,470,472],{},"Open the index, then ",[356,465,362],{},". The ",[356,468,445],{}," panel is at the top of the page. While the index shows ",[356,471,358],{},", the same panel also appears on the index overview.",[371,474,475,476,479],{},"Click ",[356,477,478],{},"Reindex now",". The reindex starts at once, with no confirmation step.",[371,481,482,483,486,487,490],{},"Watch the progress bar, ",[356,484,485],{},"Copying documents: … of …",". When the run ends, the panel shows ",[356,488,489],{},"Last reindex"," with its result.",[342,492,493,495],{},[356,494,478],{}," is off while a version is being built. Only organization owners and admins see the buttons.",[342,497,498],{},[499,500],"img",{"alt":501,"src":502,"title":503},"The Fields & mapping page with the Reindex panel on top: status READY, live version 1, and the Reindex now and Cancel reindex buttons","\u002Fdocs\u002Fscreenshots\u002Fmapping.png","Reindex now sits in the Reindex panel on Fields & mapping",[455,505,508],{"icon":506,"label":507},"i-lucide-terminal","curl",[509,510,515],"pre",{"className":511,"code":512,"language":513,"meta":514,"style":514},"language-bash shiki shiki-themes github-light-high-contrast github-light-high-contrast github-dark-high-contrast","curl -X POST https:\u002F\u002Fapi.search.zaproo.cloud\u002Fv1\u002Fprojects\u002F$PROJECT_ID\u002Findices\u002F$INDEX_ID\u002Freindex \\\n  -H \"Authorization: Bearer $ZS_KEY\"\n# 202 {\"taskId\": \"...\"}\n","bash","",[351,516,517,553,568],{"__ignoreMap":514},[518,519,522,525,529,533,536,540,543,546,549],"span",{"class":520,"line":521},"line",1,[518,523,507],{"class":524},"szw1H",[518,526,528],{"class":527},"ssYy9"," -X",[518,530,532],{"class":531},"semJd"," POST",[518,534,535],{"class":531}," https:\u002F\u002Fapi.search.zaproo.cloud\u002Fv1\u002Fprojects\u002F",[518,537,539],{"class":538},"s7iLA","$PROJECT_ID",[518,541,542],{"class":531},"\u002Findices\u002F",[518,544,545],{"class":538},"$INDEX_ID",[518,547,548],{"class":531},"\u002Freindex",[518,550,552],{"class":551},"sklAV"," \\\n",[518,554,556,559,562,565],{"class":520,"line":555},2,[518,557,558],{"class":527},"  -H",[518,560,561],{"class":531}," \"Authorization: Bearer ",[518,563,564],{"class":538},"$ZS_KEY",[518,566,567],{"class":531},"\"\n",[518,569,571],{"class":520,"line":570},3,[518,572,574],{"class":573},"sq92B","# 202 {\"taskId\": \"...\"}\n",[455,576,578,586],{"icon":279,"label":577},"MCP",[509,579,584],{"className":580,"code":582,"language":583,"meta":514},[581],"language-text","The products index needs a reindex. Start it and tell me when it is done.\n","text",[351,585,582],{"__ignoreMap":514},[342,587,588,589,592,593,363],{},"The agent calls ",[351,590,591],{},"reindex",", then ",[351,594,595],{},"get_task",[597,598],"api-route",{"auth":599,"method":600,"path":601},"Project admin or a full-access secret key","POST","\u002Fv1\u002Fprojects\u002F:projectId\u002Findices\u002F:indexId\u002Freindex",[342,603,604,605,608,609,611,612,614,615,618,619,622,623,626,627,363],{},"A reindex can start when the index is ",[351,606,607],{},"READY",", ",[351,610,353],{}," or ",[351,613,382],{},". While a reindex or a replace session builds a version, the API answers ",[351,616,617],{},"409 VERSION_BUILDING",". If the saved mapping would break a profile, rule or facet once it goes live, the reindex (and a new replace session) answers ",[351,620,621],{},"409 MAPPING_BREAKS_CONFIG"," with the same ",[351,624,625],{},"details"," as a ",[346,628,630],{"href":629},"\u002Fdocs\u002Findexing\u002Fmapping#fields-in-use","mapping save",[337,632,634],{"id":633},"what-happens-without-downtime","What happens without downtime",[459,636,637,644,647,650,653],{},[371,638,639,640,643],{},"The API creates the new version with the saved mapping. The index status becomes ",[351,641,642],{},"REINDEXING",". From now on every upsert and delete goes to both versions.",[371,645,646],{},"The worker waits for document tasks that started before the build, so none of their writes is missed.",[371,648,649],{},"The worker copies every stored document from the live version into the new one, which analyses them with the new mapping. Each document keeps its version, so a newer write that already reached the new version is not overwritten.",[371,651,652],{},"The worker checks that both versions hold the same number of documents.",[371,654,655,656,363],{},"Search moves to the new version in one atomic step. The status becomes ",[351,657,607],{},[342,659,660,661,663],{},"Search answers from the live version during steps 1 to 4, with the old mapping. Writes keep working the whole time. Additive mapping changes still save. Breaking ones answer ",[351,662,617],{}," until the build ends.",[337,665,667],{"id":666},"follow-the-progress","Follow the progress",[342,669,670,671,674,675,678,679,682,683,685,686,688,689,490],{},"The ",[351,672,673],{},"REINDEX"," task reports progress while it runs: ",[351,676,677],{},"counts.received"," is the number of documents to copy and ",[351,680,681],{},"counts.succeeded"," the number copied so far. The cabinet's ",[356,684,445],{}," panel shows it as ",[356,687,485],{}," and, after the run, ",[356,690,489],{},[342,692,693,694,697],{},"The index names its running reindex in ",[351,695,696],{},"activeReindexTaskId",", so a client that reloads can find the task again.",[337,699,701],{"id":700},"cancel-a-reindex","Cancel a reindex",[342,703,704,705,708,709,711,712,714],{},"Cancelling drops the version being built and marks the task ",[351,706,707],{},"CANCELLED",". Search never left the live version, so nothing changes for shoppers. The index status goes back to ",[351,710,607],{},", or to ",[351,713,353],{}," if the saved mapping still has breaking changes.",[342,716,717,718,721,722,724,725,727],{},"In the cabinet, click ",[356,719,720],{},"Cancel reindex"," in the ",[356,723,445],{}," panel on ",[356,726,362],{}," or on the index overview. It acts at once. The button is off when nothing is being built, and while a replace session is open.",[342,729,730],{},"With the API, the answer is the index:",[597,732],{"auth":599,"method":600,"path":733},"\u002Fv1\u002Fprojects\u002F:projectId\u002Findices\u002F:indexId\u002Freindex\u002Fcancel",[342,735,736],{},"Errors:",[368,738,739,745],{},[371,740,741,744],{},[351,742,743],{},"409 REINDEX_NOT_RUNNING",": no version is being built.",[371,746,747,750,751,755],{},[351,748,749],{},"409 SESSION_OPEN",": the version being built belongs to a replace session. ",[346,752,754],{"href":753},"\u002Fdocs\u002Findexing\u002Ffull-sync#abort-a-session","Abort the session"," instead.",[337,757,759],{"id":758},"when-a-reindex-fails","When a reindex fails",[342,761,762,763,765,766,769,770,773,774,438,777,779,780,782],{},"If the copy fails or the counts do not match, the new version is dropped and the task ends ",[351,764,382],{},", with the reason in its ",[351,767,768],{},"errors",". Open ",[356,771,772],{},"Tasks"," and click ",[356,775,776],{},"Details",[351,778,673],{}," task to read it. The index status becomes ",[351,781,382],{},". Search and writes keep using the live version. A reindex is not retried automatically: read the error, fix the cause and start a new one.",[337,784,786],{"id":785},"related","Related",[368,788,789,794,798,803],{},[371,790,791],{},[346,792,103],{"href":793},"\u002Fdocs\u002Findexing\u002Fmapping#additive-and-breaking-changes",[371,795,796],{},[346,797,115],{"href":116},[371,799,800],{},[346,801,98],{"href":802},"\u002Fdocs\u002Findexing\u002Findices#index-status",[371,804,805],{},[346,806,808],{"href":807},"\u002Fdocs\u002Findexing\u002Fdocuments#follow-a-task","Follow a task",[810,811,812],"style",{},"html pre.shiki code .szw1H, html code.shiki .szw1H{--shiki-light:#702C00;--shiki-default:#702C00;--shiki-dark:#FFB757}html pre.shiki code .ssYy9, html code.shiki .ssYy9{--shiki-light:#023B95;--shiki-default:#023B95;--shiki-dark:#91CBFF}html pre.shiki code .semJd, html code.shiki .semJd{--shiki-light:#032563;--shiki-default:#032563;--shiki-dark:#ADDCFF}html pre.shiki code .s7iLA, html code.shiki .s7iLA{--shiki-light:#0E1116;--shiki-default:#0E1116;--shiki-dark:#F0F3F6}html pre.shiki code .sklAV, html code.shiki .sklAV{--shiki-light:#A0111F;--shiki-default:#A0111F;--shiki-dark:#FF9492}html pre.shiki code .sq92B, html code.shiki .sq92B{--shiki-light:#66707B;--shiki-default:#66707B;--shiki-dark:#BDC4CC}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":514,"searchDepth":555,"depth":555,"links":814},[815,816,817,818,819,820,821,822],{"id":339,"depth":555,"text":340},{"id":399,"depth":555,"text":400},{"id":449,"depth":555,"text":450},{"id":633,"depth":555,"text":634},{"id":666,"depth":555,"text":667},{"id":700,"depth":555,"text":701},{"id":758,"depth":555,"text":759},{"id":785,"depth":555,"text":786},"md",{},{"icon":125},{"title":121,"description":124},"yAwzJecyCplDuR_m2k65gRegeLHFIt8WgzgFj2q4Nn8",[829,830],{"title":115,"path":116,"stem":117,"description":118,"icon":119,"children":-1},{"title":127,"path":128,"stem":129,"description":130,"icon":131,"children":-1},1793717706307]