[{"data":1,"prerenderedAt":1308},["ShallowReactive",2],{"docs-navigation":3,"docs-\u002Fdocs\u002Findexing\u002Findices":319,"docs-\u002Fdocs\u002Findexing\u002Findices-surround":1305},[4],{"title":5,"path":6,"stem":7,"children":8,"page":34},"Docs","\u002Fdocs","docs",[9,35,60,78,120,186,229,240,264,289],{"title":10,"description":11,"icon":12,"path":13,"stem":14,"children":15,"page":34},"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],{"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","From a new account to a first search request in six steps, with curl or from your AI agent.","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",false,{"title":36,"description":37,"icon":38,"path":39,"stem":40,"children":41,"page":34},"Account and team","Sign-in, sessions, organizations, members, roles and projects.","i-lucide-users","\u002Fdocs\u002Faccount","docs\u002F2.account",[42,48,54],{"title":43,"path":44,"stem":45,"description":46,"icon":47},"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":49,"path":50,"stem":51,"description":52,"icon":53},"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":55,"path":56,"stem":57,"description":58,"icon":59},"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":61,"description":62,"icon":63,"path":64,"stem":65,"children":66,"page":34},"API keys and security","Secret and public keys, scopes, allowed origins, rate limits and errors.","i-lucide-key-round","\u002Fdocs\u002Fkeys","docs\u002F3.keys",[67,72],{"title":68,"path":69,"stem":70,"description":71,"icon":63},"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":73,"path":74,"stem":75,"description":76,"icon":77},"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":79,"description":80,"icon":81,"path":82,"stem":83,"children":84,"page":34},"Indexing","Indices, languages, mappings, documents, tasks, full catalog sync and reindexing.","i-lucide-database","\u002Fdocs\u002Findexing","docs\u002F4.indexing",[85,90,96,102,108,114],{"title":86,"path":87,"stem":88,"description":89,"icon":81},"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":91,"path":92,"stem":93,"description":94,"icon":95},"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":97,"path":98,"stem":99,"description":100,"icon":101},"Documents and tasks","\u002Fdocs\u002Findexing\u002Fdocuments","docs\u002F4.indexing\u002F3.documents","Upload and delete documents in batches, follow each write as a task, retry safely with Idempotency-Key, and browse what the index holds.","i-lucide-file-json",{"title":103,"path":104,"stem":105,"description":106,"icon":107},"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":109,"path":110,"stem":111,"description":112,"icon":113},"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":115,"path":116,"stem":117,"description":118,"icon":119},"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":121,"description":122,"icon":123,"path":124,"stem":125,"children":126,"page":34},"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",[127,133,139,144,150,156,161,166,171,176,181],{"title":128,"path":129,"stem":130,"description":131,"icon":132},"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 an integration shows up in the cabinet.","i-lucide-layout-grid",{"title":134,"path":135,"stem":136,"description":137,"icon":138},"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":140,"path":141,"stem":142,"description":143,"icon":119},"Product feed","\u002Fdocs\u002Fintegrations\u002Fproduct-feed","docs\u002F4.integrations\u002F03.product-feed","Connect any shop that can publish its catalog as a feed. Zaproo downloads it on a schedule and writes only what changed.",{"title":145,"path":146,"stem":147,"description":148,"icon":149},"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":151,"path":152,"stem":153,"description":154,"icon":155},"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":157,"path":158,"stem":159,"description":160,"icon":155},"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":162,"path":163,"stem":164,"description":165,"icon":155},"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":167,"path":168,"stem":169,"description":170,"icon":155},"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":172,"path":173,"stem":174,"description":175,"icon":155},"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":177,"path":178,"stem":179,"description":180,"icon":155},"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":182,"path":183,"stem":184,"description":185,"icon":155},"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":187,"description":188,"icon":189,"path":190,"stem":191,"children":192,"page":34},"Search and relevance","The search API, search profiles, facets, synonyms and ranking rules.","i-lucide-search","\u002Fdocs\u002Fsearch","docs\u002F5.search",[193,199,205,211,217,223],{"title":194,"path":195,"stem":196,"description":197,"icon":198},"Search API","\u002Fdocs\u002Fsearch\u002Fsearch-api","docs\u002F5.search\u002F1.search-api","The search request and response, every filter form, sorting, paging, highlighting and the inline profile for previews.","i-lucide-search-code",{"title":200,"path":201,"stem":202,"description":203,"icon":204},"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":206,"path":207,"stem":208,"description":209,"icon":210},"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":212,"path":213,"stem":214,"description":215,"icon":216},"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":218,"path":219,"stem":220,"description":221,"icon":222},"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":224,"path":225,"stem":226,"description":227,"icon":228},"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":230,"description":231,"icon":232,"path":233,"stem":234,"children":235,"page":34},"Autocomplete","Query suggestions as the shopper types.","i-lucide-text-cursor-input","\u002Fdocs\u002Fautocomplete","docs\u002F6.autocomplete",[236],{"title":230,"path":237,"stem":238,"description":239,"icon":232},"\u002Fdocs\u002Fautocomplete\u002Fsuggestions","docs\u002F6.autocomplete\u002F1.suggestions","Query suggestions as the shopper types, built every hour from your own searches, field values and custom entries.",{"title":241,"description":242,"icon":243,"path":244,"stem":245,"children":246,"page":34},"Analytics","Searches, zero-result queries and latency.","i-lucide-chart-line","\u002Fdocs\u002Fanalytics","docs\u002F7.analytics",[247,252,258],{"title":248,"path":249,"stem":250,"description":251,"icon":243},"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":253,"path":254,"stem":255,"description":256,"icon":257},"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":259,"path":260,"stem":261,"description":262,"icon":263},"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":265,"description":266,"icon":267,"path":268,"stem":269,"children":270,"page":34},"AI agents (MCP)","Connect Claude Code or any MCP client and manage search from an agent.","i-lucide-bot","\u002Fdocs\u002Fmcp","docs\u002F8.mcp",[271,277,283],{"title":272,"path":273,"stem":274,"description":275,"icon":276},"MCP setup","\u002Fdocs\u002Fmcp\u002Fsetup","docs\u002F8.mcp\u002F1.setup","Connect Claude Code or any MCP client to Zaproo Search and manage indices, documents, profiles, synonyms and ranking rules from your agent.","i-lucide-plug",{"title":278,"path":279,"stem":280,"description":281,"icon":282},"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":284,"path":285,"stem":286,"description":287,"icon":288},"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":290,"description":291,"icon":292,"path":293,"stem":294,"children":295,"page":34},"Reference","Every REST route, every limit, plans and billing, and status.","i-lucide-book-open","\u002Fdocs\u002Freference","docs\u002F9.reference",[296,302,307,313],{"title":297,"path":298,"stem":299,"description":300,"icon":301},"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":303,"path":304,"stem":305,"description":306,"icon":77},"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":308,"path":309,"stem":310,"description":311,"icon":312},"Plans and billing","\u002Fdocs\u002Freference\u002Fbilling","docs\u002F9.reference\u002F3.billing","The plans, how usage is measured, what happens near a quota, and how plan changes and invoices work.","i-lucide-credit-card",{"title":314,"path":315,"stem":316,"description":317,"icon":318},"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":320,"title":86,"body":321,"description":89,"extension":1300,"meta":1301,"navigation":1302,"path":87,"seo":1303,"stem":88,"__hash__":1304},"docs\u002Fdocs\u002F4.indexing\u002F1.indices.md",{"type":322,"value":323,"toc":1285},"minimark",[324,329,333,336,340,348,356,372,494,500,504,507,544,554,558,561,644,647,650,654,657,664,751,754,762,766,772,825,828,853,857,873,877,885,892,980,992,996,999,1001,1006,1009,1027,1030,1041,1045,1048,1051,1138,1158,1162,1263,1267,1281],[325,326,328],"h2",{"id":327},"what-an-index-is","What an index is",[330,331,332],"p",{},"An index holds one catalog: its documents, its mapping (the fields and what each is used for), its search profiles, synonyms and ranking rules. A project can hold several indices, for example one per shop language or one per brand. Searches never cross indices.",[330,334,335],{},"Each index has one language. The language decides how text is split into words, which word forms count as the same word and which short words are ignored.",[325,337,339],{"id":338},"create-an-index","Create an index",[330,341,342,343,347],{},"Give the index a name and a language. The name is unique in its project and 1 to 100 characters long. The language defaults to ",[344,345,346],"code",{},"english",".",[330,349,350],{},[351,352],"img",{"alt":353,"src":354,"title":355},"The New index dialog with a name field and the language list open, English (US) selected","\u002Fdocs\u002Fscreenshots\u002Findices-new.png","Create an index from the Indices page",[330,357,358,359,362,363,366,367,347],{},"Leave out the fields and the index starts with only ",[344,360,361],{},"id",". The first document upload then maps every field it can recognise. To control the mapping from the start, send ",[344,364,365],{},"fields"," with the create request. See ",[368,369,371],"a",{"href":370},"\u002Fdocs\u002Findexing\u002Fmapping#inferred-mapping","inferred mapping",[373,374,375,402,477],"tabs",{},[376,377,379],"tabs-item",{"icon":263,"label":378},"Cabinet",[330,380,381,382,386,387,390,391,394,395,386,398,401],{},"Open ",[383,384,385],"strong",{},"Indices"," and click ",[383,388,389],{},"New index",". Enter a ",[383,392,393],{},"Name",", pick a ",[383,396,397],{},"Language",[383,399,400],{},"Create index",". Only organization owners and admins see the button.",[376,403,406],{"icon":404,"label":405},"i-lucide-terminal","curl",[407,408,413],"pre",{"className":409,"code":410,"language":411,"meta":412,"style":412},"language-bash shiki shiki-themes github-light-high-contrast github-light-high-contrast github-dark-high-contrast","curl -X POST https:\u002F\u002Fapi.zaproo-search.com\u002Fv1\u002Fprojects\u002F$PROJECT_ID\u002Findices \\\n  -H \"Authorization: Bearer $ZS_KEY\" -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\"name\": \"products\", \"language\": \"german\"}'\n","bash","",[344,414,415,445,468],{"__ignoreMap":412},[416,417,420,423,427,431,434,438,441],"span",{"class":418,"line":419},"line",1,[416,421,405],{"class":422},"szw1H",[416,424,426],{"class":425},"ssYy9"," -X",[416,428,430],{"class":429},"semJd"," POST",[416,432,433],{"class":429}," https:\u002F\u002Fapi.zaproo-search.com\u002Fv1\u002Fprojects\u002F",[416,435,437],{"class":436},"s7iLA","$PROJECT_ID",[416,439,440],{"class":429},"\u002Findices",[416,442,444],{"class":443},"sklAV"," \\\n",[416,446,448,451,454,457,460,463,466],{"class":418,"line":447},2,[416,449,450],{"class":425},"  -H",[416,452,453],{"class":429}," \"Authorization: Bearer ",[416,455,456],{"class":436},"$ZS_KEY",[416,458,459],{"class":429},"\"",[416,461,462],{"class":425}," -H",[416,464,465],{"class":429}," \"Content-Type: application\u002Fjson\"",[416,467,444],{"class":443},[416,469,471,474],{"class":418,"line":470},3,[416,472,473],{"class":425},"  -d",[416,475,476],{"class":429}," '{\"name\": \"products\", \"language\": \"german\"}'\n",[376,478,480,488],{"icon":267,"label":479},"MCP",[407,481,486],{"className":482,"code":484,"language":485,"meta":412},[483],"language-text","Create an index called products in German.\n","text",[344,487,484],{"__ignoreMap":412},[330,489,490,491,347],{},"The agent calls ",[344,492,493],{},"create_index",[495,496],"api-route",{"auth":497,"method":498,"path":499},"Project admin or a full-access secret key","POST","\u002Fv1\u002Fprojects\u002F:projectId\u002Findices",[495,501],{"auth":502,"method":503,"path":499},"Project member or any secret key","GET",[495,505],{"auth":502,"method":503,"path":506},"\u002Fv1\u002Fprojects\u002F:projectId\u002Findices\u002F:indexId",[330,508,509,510,512,513,512,516,512,519,512,522,512,525,528,529,532,533,528,536,539,540,543],{},"The list and the single index return ",[344,511,361],{},", ",[344,514,515],{},"name",[344,517,518],{},"language",[344,520,521],{},"status",[344,523,524],{},"docCount",[344,526,527],{},"activeVersion"," and ",[344,530,531],{},"buildingVersion",". The single index also returns ",[344,534,535],{},"activeReindexTaskId",[344,537,538],{},"openReplaceSessionId",", so a client can pick up a running reindex or an open ",[368,541,542],{"href":104},"replace session"," again.",[330,545,546,547,550,551,347],{},"A key limited to some indices cannot create an index: the API answers ",[344,548,549],{},"403 INDEX_SCOPED_KEY",". Such a key sees only its own indices in the list. Any other index id answers ",[344,552,553],{},"404",[325,555,557],{"id":556},"rename-an-index","Rename an index",[330,559,560],{},"The new name follows the same rules: unique in the project, 1 to 100 characters. Search, API keys and shop plugins address the index by its id, so they keep working under the new name.",[373,562,563,579,631],{},[376,564,565],{"icon":263,"label":378},[330,566,567,568,571,572,386,575,578],{},"Open the index, then ",[383,569,570],{},"Settings",". Change ",[383,573,574],{},"Index name",[383,576,577],{},"Save",". Only organization owners and admins can rename an index.",[376,580,581],{"icon":404,"label":405},[407,582,584],{"className":409,"code":583,"language":411,"meta":412,"style":412},"curl -X PUT https:\u002F\u002Fapi.zaproo-search.com\u002Fv1\u002Fprojects\u002F$PROJECT_ID\u002Findices\u002F$INDEX_ID \\\n  -H \"Authorization: Bearer $ZS_KEY\" -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\"name\": \"products-de\"}'\n",[344,585,586,608,624],{"__ignoreMap":412},[416,587,588,590,592,595,597,599,602,605],{"class":418,"line":419},[416,589,405],{"class":422},[416,591,426],{"class":425},[416,593,594],{"class":429}," PUT",[416,596,433],{"class":429},[416,598,437],{"class":436},[416,600,601],{"class":429},"\u002Findices\u002F",[416,603,604],{"class":436},"$INDEX_ID ",[416,606,607],{"class":443},"\\\n",[416,609,610,612,614,616,618,620,622],{"class":418,"line":447},[416,611,450],{"class":425},[416,613,453],{"class":429},[416,615,456],{"class":436},[416,617,459],{"class":429},[416,619,462],{"class":425},[416,621,465],{"class":429},[416,623,444],{"class":443},[416,625,626,628],{"class":418,"line":470},[416,627,473],{"class":425},[416,629,630],{"class":429}," '{\"name\": \"products-de\"}'\n",[376,632,633,639],{"icon":267,"label":479},[407,634,637],{"className":635,"code":636,"language":485,"meta":412},[483],"Rename the products index to products-de.\n",[344,638,636],{"__ignoreMap":412},[330,640,490,641,347],{},[344,642,643],{},"update_index",[495,645],{"auth":497,"method":646,"path":506},"PUT",[330,648,649],{},"The answer is the index with its new name.",[325,651,653],{"id":652},"delete-an-index","Delete an index",[330,655,656],{},"Deleting an index removes its documents, profiles, rules, synonyms, autocomplete, data source and search analytics. Tasks that have not finished are cancelled. Searches that use the index stop at once. There is no undo.",[330,658,659,660,663],{},"The request repeats the index name exactly as it is saved, so a stray call cannot delete an index. A name that does not match answers ",[344,661,662],{},"400 INDEX_NAME_MISMATCH"," and nothing is deleted.",[373,665,666,688,737],{},[376,667,668],{"icon":263,"label":378},[330,669,567,670,672,673,676,677,386,680,683,684,687],{},[383,671,570],{},", and click ",[383,674,675],{},"Delete index",". The dialog lists what goes. Tick ",[383,678,679],{},"I understand that this can't be undone",[383,681,682],{},"Continue",". Type the index name and click ",[383,685,686],{},"Delete this index",". Only organization owners and admins can delete an index.",[376,689,690],{"icon":404,"label":405},[407,691,693],{"className":409,"code":692,"language":411,"meta":412,"style":412},"curl -X DELETE https:\u002F\u002Fapi.zaproo-search.com\u002Fv1\u002Fprojects\u002F$PROJECT_ID\u002Findices\u002F$INDEX_ID \\\n  -H \"Authorization: Bearer $ZS_KEY\" -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\"name\": \"products\"}'\n",[344,694,695,714,730],{"__ignoreMap":412},[416,696,697,699,701,704,706,708,710,712],{"class":418,"line":419},[416,698,405],{"class":422},[416,700,426],{"class":425},[416,702,703],{"class":429}," DELETE",[416,705,433],{"class":429},[416,707,437],{"class":436},[416,709,601],{"class":429},[416,711,604],{"class":436},[416,713,607],{"class":443},[416,715,716,718,720,722,724,726,728],{"class":418,"line":447},[416,717,450],{"class":425},[416,719,453],{"class":429},[416,721,456],{"class":436},[416,723,459],{"class":429},[416,725,462],{"class":425},[416,727,465],{"class":429},[416,729,444],{"class":443},[416,731,732,734],{"class":418,"line":470},[416,733,473],{"class":425},[416,735,736],{"class":429}," '{\"name\": \"products\"}'\n",[376,738,739,745],{"icon":267,"label":479},[407,740,743],{"className":741,"code":742,"language":485,"meta":412},[483],"Delete the products index.\n",[344,744,742],{"__ignoreMap":412},[330,746,490,747,750],{},[344,748,749],{},"delete_index"," with the index name. It should ask you to confirm first.",[495,752],{"auth":497,"method":753,"path":506},"DELETE",[330,755,756,758,759,347],{},[344,757,753],{}," answers ",[344,760,761],{},"204",[325,763,765],{"id":764},"organize-indices-in-folders","Organize indices in folders",[330,767,768,769,771],{},"Folders group the ",[383,770,385],{}," list, one level deep. They only change how the list looks. Search, API keys and shop plugins do not see them.",[773,774,775,789,806,819],"ul",{},[776,777,778,781,782,785,786,788],"li",{},[383,779,780],{},"Create."," Click ",[383,783,784],{},"New folder"," next to ",[383,787,389],{}," and give it a name, unique in the project.",[776,790,791,794,795,798,799,802,803,347],{},[383,792,793],{},"Move an index."," Drag its row onto a folder. To take it out, drag it onto ",[383,796,797],{},"Move out of folder"," at the top of the list. Or open the row's ",[383,800,801],{},"Move to folder"," menu and pick a folder or ",[383,804,805],{},"No folder",[776,807,808,811,812,528,815,818],{},[383,809,810],{},"Change the order."," Drag a row above or below another one. A line shows where it lands. Dropping it on a row in another folder moves it there too. Or use ",[383,813,814],{},"Move up",[383,816,817],{},"Move down"," in the row's menu. Everyone in the project sees the same order, and a new index goes last.",[776,820,821,824],{},[383,822,823],{},"Rename or delete."," Use the folder's menu. Deleting a folder moves its indices out of it. No index or document is deleted.",[330,826,827],{},"Folders start collapsed. The cabinet remembers which ones you opened in this browser. Each folder row shows how many indices it holds, their documents and the latest data update. Only organization owners and admins can change folders. Everyone else can open them.",[330,829,830,831,834,835,528,838,841,842,845,846,528,849,852],{},"With the API, create a folder with ",[344,832,833],{},"POST \u002Fv1\u002Fprojects\u002F:projectId\u002Findex-folders"," and move an index with ",[344,836,837],{},"PUT ...\u002Findices\u002F:indexId",[344,839,840],{},"{ \"folderId\": \"...\" }",". Send ",[344,843,844],{},"null"," to move it out. Save the order with ",[344,847,848],{},"PUT ...\u002Findices\u002Forder",[344,850,851],{},"{ \"ids\": [...] }",", every index id of the project once, in the new order.",[325,854,856],{"id":855},"last-data-update","Last data update",[330,858,859,860,862,863,866,867,869,870,347],{},"The ",[383,861,856],{}," column shows when the documents of an index last changed. It counts document uploads, document deletes, replace-all commits and delete-all. It does not count settings changes, reindexes or language group syncs. The API returns it as ",[344,864,865],{},"dataUpdatedAt",". It is ",[344,868,844],{}," for an index with no data write on record, and the list shows ",[383,871,872],{},"Never",[325,874,876],{"id":875},"index-status","Index status",[330,878,879,881,882,347],{},[344,880,521],{}," tells you whether the index has what its saved mapping asks for. Search keeps working in every status except ",[344,883,884],{},"CREATING",[330,886,887],{},[351,888],{"alt":889,"src":890,"title":891},"An index overview with the READY badge, the document count, active version v1, the language, search stats and a four-step setup checklist, all done","\u002Fdocs\u002Fscreenshots\u002Fcabinet-overview.png","The index overview shows its status and what is left to set up",[893,894,895,910],"table",{},[896,897,898],"thead",{},[899,900,901,904,907],"tr",{},[902,903,314],"th",{},[902,905,906],{},"What it means",[902,908,909],{},"What to do",[911,912,913,926,939,954,967],"tbody",{},[899,914,915,920,923],{},[916,917,918],"td",{},[344,919,884],{},[916,921,922],{},"The index is being set up. It lasts a moment. If setup fails, the index is removed again.",[916,924,925],{},"Wait.",[899,927,928,933,936],{},[916,929,930],{},[344,931,932],{},"READY",[916,934,935],{},"The live version matches the saved mapping.",[916,937,938],{},"Nothing.",[899,940,941,946,949],{},[916,942,943],{},[344,944,945],{},"NEEDS_REINDEX",[916,947,948],{},"You saved a mapping with a breaking change. Search and writes use the live version with the previous mapping.",[916,950,951,347],{},[368,952,953],{"href":110},"Reindex",[899,955,956,961,964],{},[916,957,958],{},[344,959,960],{},"REINDEXING",[916,962,963],{},"A new version is being built, by a reindex or a replace session. Writes reach both versions.",[916,965,966],{},"Wait, or cancel.",[899,968,969,974,977],{},[916,970,971],{},[344,972,973],{},"FAILED",[916,975,976],{},"The last build failed and was dropped. Search uses the live version as before.",[916,978,979],{},"Read the task's errors, then reindex again.",[330,981,982,983,985,986,989,990,347],{},"The cabinet shows the status on the ",[383,984,385],{}," list and on the index overview. The overview also shows a ",[383,987,988],{},"Reindex needed"," warning while the status is ",[344,991,945],{},[325,993,995],{"id":994},"languages","Languages",[330,997,998],{},"Every index language and the analysis it gets:",[994,1000],{},[1002,1003,1005],"h3",{"id":1004},"language-tiers","Language tiers",[330,1007,1008],{},"Languages come in two tiers.",[773,1010,1011,1017],{},[776,1012,1013,1016],{},[383,1014,1015],{},"Stemming and stop words."," Stemming reduces word forms, so \"boxes\" finds \"box\". Stop words such as \"the\" and \"and\" are ignored.",[776,1018,1019,1022,1023,1026],{},[383,1020,1021],{},"Basic matching: no word-form reduction."," Text is lowercased and accents are folded, so \"Café\" finds \"cafe\". \"boxes\" does not find \"box\". Croatian and Slovenian are in this tier. ",[344,1024,1025],{},"standard"," (Language-neutral) is too: use it for a catalog in several languages or one made mostly of codes.",[330,1028,1029],{},"The cabinet groups the language picker by tier. The index overview shows the tier under the language when the language has basic matching only.",[330,1031,1032,1033,1036,1037,1040],{},"A single searchable field can use a different language from its index, for example an English ",[344,1034,1035],{},"title"," in a German index. See the field's ",[368,1038,397],{"href":1039},"\u002Fdocs\u002Findexing\u002Fmapping#language"," option.",[1002,1042,1044],{"id":1043},"change-the-language","Change the language",[330,1046,1047],{},"The language is part of the mapping. A change re-analyses every text field, so it is a breaking change and needs a reindex. The cabinet has no control for it. Send the whole mapping with the new language:",[495,1049],{"auth":497,"method":646,"path":1050},"\u002Fv1\u002Fprojects\u002F:projectId\u002Findices\u002F:indexId\u002Fmapping",[407,1052,1054],{"className":409,"code":1053,"language":411,"meta":412,"style":412},"curl https:\u002F\u002Fapi.zaproo-search.com\u002Fv1\u002Fprojects\u002F$PROJECT_ID\u002Findices\u002F$INDEX_ID\u002Fmapping \\\n  -H \"Authorization: Bearer $ZS_KEY\" > mapping.json\n# edit \"language\" in mapping.json, then drop the \"unmapped\" list\ncurl -X PUT https:\u002F\u002Fapi.zaproo-search.com\u002Fv1\u002Fprojects\u002F$PROJECT_ID\u002Findices\u002F$INDEX_ID\u002Fmapping \\\n  -H \"Authorization: Bearer $ZS_KEY\" -H \"Content-Type: application\u002Fjson\" -d @mapping.json\n",[344,1055,1056,1074,1090,1096,1117],{"__ignoreMap":412},[416,1057,1058,1060,1062,1064,1066,1069,1072],{"class":418,"line":419},[416,1059,405],{"class":422},[416,1061,433],{"class":429},[416,1063,437],{"class":436},[416,1065,601],{"class":429},[416,1067,1068],{"class":436},"$INDEX_ID",[416,1070,1071],{"class":429},"\u002Fmapping",[416,1073,444],{"class":443},[416,1075,1076,1078,1080,1082,1084,1087],{"class":418,"line":447},[416,1077,450],{"class":425},[416,1079,453],{"class":429},[416,1081,456],{"class":436},[416,1083,459],{"class":429},[416,1085,1086],{"class":443}," >",[416,1088,1089],{"class":429}," mapping.json\n",[416,1091,1092],{"class":418,"line":470},[416,1093,1095],{"class":1094},"sq92B","# edit \"language\" in mapping.json, then drop the \"unmapped\" list\n",[416,1097,1099,1101,1103,1105,1107,1109,1111,1113,1115],{"class":418,"line":1098},4,[416,1100,405],{"class":422},[416,1102,426],{"class":425},[416,1104,594],{"class":429},[416,1106,433],{"class":429},[416,1108,437],{"class":436},[416,1110,601],{"class":429},[416,1112,1068],{"class":436},[416,1114,1071],{"class":429},[416,1116,444],{"class":443},[416,1118,1120,1122,1124,1126,1128,1130,1132,1135],{"class":418,"line":1119},5,[416,1121,450],{"class":425},[416,1123,453],{"class":429},[416,1125,456],{"class":436},[416,1127,459],{"class":429},[416,1129,462],{"class":425},[416,1131,465],{"class":429},[416,1133,1134],{"class":425}," -d",[416,1136,1137],{"class":429}," @mapping.json\n",[330,1139,1140,1141,1144,1145,1148,1149,1151,1152,1154,1155,347],{},"The answer's ",[344,1142,1143],{},"diff"," lists the language change as ",[344,1146,1147],{},"breaking"," and the index moves to ",[344,1150,945],{},". The index's ",[344,1153,518],{}," shows the new value at once, but search keeps the old analysis until you ",[368,1156,1157],{"href":110},"reindex",[325,1159,1161],{"id":1160},"errors","Errors",[893,1163,1164,1174],{},[896,1165,1166],{},[899,1167,1168,1171],{},[902,1169,1170],{},"Code",[902,1172,1173],{},"When",[911,1175,1176,1186,1196,1206,1219,1230,1239,1253],{},[899,1177,1178,1183],{},[916,1179,1180],{},[344,1181,1182],{},"409 INDEX_NAME_TAKEN",[916,1184,1185],{},"The project already has an index with this name, on create or rename.",[899,1187,1188,1193],{},[916,1189,1190],{},[344,1191,1192],{},"409 INDEX_FOLDER_NAME_TAKEN",[916,1194,1195],{},"The project already has a folder with this name, on create or rename.",[899,1197,1198,1203],{},[916,1199,1200],{},[344,1201,1202],{},"404 INDEX_FOLDER_NOT_FOUND",[916,1204,1205],{},"The folder does not exist or belongs to another project.",[899,1207,1208,1213],{},[916,1209,1210],{},[344,1211,1212],{},"400 INDEX_ORDER_MISMATCH",[916,1214,859,1215,1218],{},[344,1216,1217],{},"ids"," of an order are not every index of the project, each once.",[899,1220,1221,1225],{},[916,1222,1223],{},[344,1224,662],{},[916,1226,859,1227,1229],{},[344,1228,515],{}," sent with a delete is not the index name as saved.",[899,1231,1232,1236],{},[916,1233,1234],{},[344,1235,549],{},[916,1237,1238],{},"A key limited to some indices tried to create one.",[899,1240,1241,1246],{},[916,1242,1243],{},[344,1244,1245],{},"400 LANGUAGE_UNAVAILABLE",[916,1247,1248,1249,1252],{},"The search cluster lacks the OpenSearch plugin the language needs. Polish needs ",[344,1250,1251],{},"analysis-stempel",". The hosted service has it.",[899,1254,1255,1260],{},[916,1256,1257],{},[344,1258,1259],{},"404 INDEX_NOT_FOUND",[916,1261,1262],{},"The index does not exist, belongs to another project or is outside the key's scope.",[325,1264,1266],{"id":1265},"related","Related",[773,1268,1269,1273,1277],{},[776,1270,1271],{},[368,1272,91],{"href":92},[776,1274,1275],{},[368,1276,97],{"href":98},[776,1278,1279],{},[368,1280,109],{"href":110},[1282,1283,1284],"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 .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);}html pre.shiki code .sq92B, html code.shiki .sq92B{--shiki-light:#66707B;--shiki-default:#66707B;--shiki-dark:#BDC4CC}",{"title":412,"searchDepth":447,"depth":447,"links":1286},[1287,1288,1289,1290,1291,1292,1293,1294,1298,1299],{"id":327,"depth":447,"text":328},{"id":338,"depth":447,"text":339},{"id":556,"depth":447,"text":557},{"id":652,"depth":447,"text":653},{"id":764,"depth":447,"text":765},{"id":855,"depth":447,"text":856},{"id":875,"depth":447,"text":876},{"id":994,"depth":447,"text":995,"children":1295},[1296,1297],{"id":1004,"depth":470,"text":1005},{"id":1043,"depth":470,"text":1044},{"id":1160,"depth":447,"text":1161},{"id":1265,"depth":447,"text":1266},"md",{},{"icon":81},{"title":86,"description":89},"-vbJovnggV2RwkuDl5od3RB7_-AvEHKRhhm7rBW-RyI",[1306,1307],{"title":73,"path":74,"stem":75,"description":76,"icon":77,"children":-1},{"title":91,"path":92,"stem":93,"description":94,"icon":95,"children":-1},1792794344453]