[{"data":1,"prerenderedAt":1527},["ShallowReactive",2],{"docs-navigation":3,"docs-\u002Fdocs\u002Fautocomplete\u002Fsuggestions":319,"docs-\u002Fdocs\u002Fautocomplete\u002Fsuggestions-surround":1524},[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":230,"body":321,"description":239,"extension":1519,"meta":1520,"navigation":1521,"path":237,"seo":1522,"stem":238,"__hash__":1523},"docs\u002Fdocs\u002F6.autocomplete\u002F1.suggestions.md",{"type":322,"value":323,"toc":1496},"minimark",[324,329,333,356,359,384,388,396,404,409,413,426,457,589,613,631,676,710,732,772,803,828,850,853,856,859,862,866,916,945,952,955,962,1013,1016,1020,1023,1029,1032,1075,1082,1086,1092,1096,1164,1343,1350,1356,1359,1370,1374,1436,1439,1443,1474,1478,1492],[325,326,328],"h2",{"id":327},"what-autocomplete-does","What autocomplete does",[330,331,332],"p",{},"As the shopper types, the search box asks Zaproo for completions: \"sams\" answers \"samsung tv\", \"samsung\", \"samsung soundbar\". Each index has its own suggestion index, built from three sources:",[334,335,336,344,350],"ul",{},[337,338,339,343],"li",{},[340,341,342],"strong",{},"Queries"," that shoppers searched on your store and that found products.",[337,345,346,349],{},[340,347,348],{},"Field values"," of the fields you choose, such as every brand.",[337,351,352,355],{},[340,353,354],{},"Custom suggestions"," you add by hand, such as a campaign name.",[330,357,358],{},"Suggestions only ever come from that suggestion index, so a suggest request stays fast and never touches your products. The index is rebuilt every hour.",[330,360,361,362,364,365,368,369,372,373,376,377,379,380,383],{},"In the cabinet, open an index and then ",[340,363,230],{},". The page has the suggest key and the ",[340,366,367],{},"Rebuild now"," button at the top, then ",[340,370,371],{},"Where suggestions come from",", ",[340,374,375],{},"How suggestions behave"," and ",[340,378,354],{},". The ",[340,381,382],{},"Try it"," panel beside them shows what the search box suggests now.",[325,385,387],{"id":386},"settings","Settings",[330,389,390,391,395],{},"Each index has one suggest config. The first time anyone opens it, in the cabinet or with ",[392,393,394],"code",{},"GET",", it is created with the defaults below and a new suggest key.",[330,397,398],{},[399,400],"img",{"alt":401,"src":402,"title":403},"The Autocomplete page with the settings form, the suggestion index with a Rebuild now button, and a preview listing tape, duct tape and office tape for the query ta","\u002Fdocs\u002Fscreenshots\u002Fautocomplete.png","Autocomplete settings with a live preview",[405,406],"api-route",{"auth":407,"method":394,"path":408},"Project member or any secret key","\u002Fv1\u002Fprojects\u002F:projectId\u002Findices\u002F:indexId\u002Fsuggestions\u002Fconfig",[405,410],{"auth":411,"method":412,"path":408},"Project admin or a full-access secret key","PUT",[330,414,415,417,418,421,422,425],{},[392,416,412],{}," replaces the whole config, so send every setting. A field that is not a keyword field with doc values, or a ",[392,419,420],{},"searchProfileKey"," that no profile of this index has, answers ",[392,423,424],{},"400 SUGGEST_CONFIG_INVALID"," with one issue per problem.",[330,427,428,429,372,432,372,435,372,438,372,441,443,444,372,447,372,450,453,454,456],{},"Settings that shape the answer (",[392,430,431],{},"limit",[392,433,434],{},"fuzzy",[392,436,437],{},"defaultSuggestions",[392,439,440],{},"facetHints",[392,442,420],{},") apply to the very next suggest request. Settings that shape the build (",[392,445,446],{},"fields",[392,448,449],{},"minQueryCount",[392,451,452],{},"lookbackDays",") apply with the next build: wait for the hourly one or press ",[340,455,367],{},".",[458,459,464],"pre",{"className":460,"code":461,"language":462,"meta":463,"style":463},"language-bash shiki shiki-themes github-light-high-contrast github-light-high-contrast github-dark-high-contrast","curl -X PUT https:\u002F\u002Fapi.zaproo-search.com\u002Fv1\u002Fprojects\u002F$PROJECT_ID\u002Findices\u002F$INDEX_ID\u002Fsuggestions\u002Fconfig \\\n  -H \"Authorization: Bearer $ZS_KEY\" -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"limit\": 8,\n    \"fuzzy\": true,\n    \"defaultSuggestions\": {\"enabled\": true, \"count\": 5},\n    \"facetHints\": true,\n    \"searchProfileKey\": \"PROFILE_KEY\",\n    \"fields\": [\"brand\"],\n    \"minQueryCount\": 2,\n    \"lookbackDays\": 30\n  }'\n","bash","",[392,465,466,503,526,535,541,547,553,559,565,571,577,583],{"__ignoreMap":463},[467,468,471,475,479,483,486,490,493,496,499],"span",{"class":469,"line":470},"line",1,[467,472,474],{"class":473},"szw1H","curl",[467,476,478],{"class":477},"ssYy9"," -X",[467,480,482],{"class":481},"semJd"," PUT",[467,484,485],{"class":481}," https:\u002F\u002Fapi.zaproo-search.com\u002Fv1\u002Fprojects\u002F",[467,487,489],{"class":488},"s7iLA","$PROJECT_ID",[467,491,492],{"class":481},"\u002Findices\u002F",[467,494,495],{"class":488},"$INDEX_ID",[467,497,498],{"class":481},"\u002Fsuggestions\u002Fconfig",[467,500,502],{"class":501},"sklAV"," \\\n",[467,504,506,509,512,515,518,521,524],{"class":469,"line":505},2,[467,507,508],{"class":477},"  -H",[467,510,511],{"class":481}," \"Authorization: Bearer ",[467,513,514],{"class":488},"$ZS_KEY",[467,516,517],{"class":481},"\"",[467,519,520],{"class":477}," -H",[467,522,523],{"class":481}," \"Content-Type: application\u002Fjson\"",[467,525,502],{"class":501},[467,527,529,532],{"class":469,"line":528},3,[467,530,531],{"class":477},"  -d",[467,533,534],{"class":481}," '{\n",[467,536,538],{"class":469,"line":537},4,[467,539,540],{"class":481},"    \"limit\": 8,\n",[467,542,544],{"class":469,"line":543},5,[467,545,546],{"class":481},"    \"fuzzy\": true,\n",[467,548,550],{"class":469,"line":549},6,[467,551,552],{"class":481},"    \"defaultSuggestions\": {\"enabled\": true, \"count\": 5},\n",[467,554,556],{"class":469,"line":555},7,[467,557,558],{"class":481},"    \"facetHints\": true,\n",[467,560,562],{"class":469,"line":561},8,[467,563,564],{"class":481},"    \"searchProfileKey\": \"PROFILE_KEY\",\n",[467,566,568],{"class":469,"line":567},9,[467,569,570],{"class":481},"    \"fields\": [\"brand\"],\n",[467,572,574],{"class":469,"line":573},10,[467,575,576],{"class":481},"    \"minQueryCount\": 2,\n",[467,578,580],{"class":469,"line":579},11,[467,581,582],{"class":481},"    \"lookbackDays\": 30\n",[467,584,586],{"class":469,"line":585},12,[467,587,588],{"class":481},"  }'\n",[590,591,595,600,605],"setting",{"name":431,"type":592,"default":593,"values":594},"integer","8","1 to 20",[596,597,599],"h3",{"id":598},"suggestions-per-answer","Suggestions per answer",[330,601,602,603,456],{},"How many suggestions one answer holds at most. In the cabinet: ",[340,604,599],{},[606,607,608],"template",{"v-slot:tips":463},[334,609,610],{},[337,611,612],{},"6 to 8 fit a dropdown on a phone without scrolling. More than 10 is hard to scan while typing.",[590,614,617,621,624],{"name":434,"type":615,"default":616},"boolean","true",[596,618,620],{"id":619},"allow-one-typo-per-word","Allow one typo per word",[330,622,623],{},"Lets each word the shopper types differ by one letter from a suggestion, after an exact first letter: \"samsnug\" still finds \"samsung tv\". A suggestion that matches without a typo scores twice as high as one that needs the typo, so exact completions come first.",[606,625,626],{"v-slot:tips":463},[334,627,628],{},[337,629,630],{},"Leave it on for most stores. Turn it off when shoppers mostly type codes, where one changed character is a different product.",[590,632,636,640,666],{"name":437,"type":633,"default":634,"values":635},"{ enabled, count }","enabled true, count 5","count 1 to 20",[596,637,639],{"id":638},"empty-query-suggestions","Empty query suggestions",[330,641,642,643,646,647,650,651,654,655,657,658,661,662,665],{},"What an empty ",[392,644,645],{},"q"," answers, for example when the shopper clicks into the search box before typing. With ",[392,648,649],{},"enabled",", it lists the ",[392,652,653],{},"count"," most searched queries. Off, an empty ",[392,656,645],{}," answers an empty list. In the cabinet: ",[340,659,660],{},"Empty search box",", the ",[340,663,664],{},"Show popular searches"," switch and the number next to it.",[606,667,668],{"v-slot:tips":463},[334,669,670,673],{},[337,671,672],{},"Only queries are listed here, never field values or custom suggestions.",[337,674,675],{},"A new store has no searches yet, so the list stays empty until shoppers have searched for a while.",[590,677,678,682,693,700],{"name":440,"type":615,"default":616},[596,679,681],{"id":680},"facet-hints","Facet hints",[330,683,684,685,688,689,692],{},"Adds a category to suggestions where one stands out: \"samsung tv\" ",[340,686,687],{},"in TV",". The storefront can then search \"samsung tv\" with that category already filtered. A hint comes from the first facetable ",[392,690,691],{},"hierarchy"," field of the index, and only when more than half of the products the query finds sit in one category; the deepest such category wins. The 200 most popular queries get a hint.",[330,694,695,696,699],{},"With this off, every suggestion answers ",[392,697,698],{},"facetHint: null",". Custom suggestions can carry a hint of their own.",[606,701,702],{"v-slot:tips":463},[334,703,704],{},[337,705,706,707,709],{},"Hints need a ",[392,708,691],{}," field that is facetable in the mapping. Without one, queries get no hints, but field values still point at their own field.",[590,711,714,718,723],{"name":420,"type":712,"default":713},"profile key | null","null",[596,715,717],{"id":716},"search-profile-for-a-clicked-suggestion","Search profile for a clicked suggestion",[330,719,720,721,456],{},"The profile the storefront should search with when the shopper picks a suggestion. Zaproo does not use it itself; it echoes it in every suggest answer, so the storefront does not have to hard-code it. In the cabinet: ",[340,722,717],{},[606,724,725],{"v-slot:related":463},[334,726,727],{},[337,728,729],{},[730,731,200],"a",{"href":201},[590,733,737,740,758],{"name":446,"type":734,"default":735,"values":736},"field names","[]","up to 10 keyword fields",[596,738,348],{"id":739},"field-values",[330,741,742,743,746,747,750,751,754,755,757],{},"Fields whose values become suggestions, such as ",[392,744,745],{},"brand"," or ",[392,748,749],{},"series",". Each must be a ",[392,752,753],{},"keyword"," field that is filterable, facetable or sortable. Each field adds up to its 200 most frequent values. In the cabinet: ",[340,756,348],{},", a list of the fields that qualify.",[606,759,760],{"v-slot:tips":463},[334,761,762,769],{},[337,763,764,765,768],{},"Pick short, typed-by-name values: brands, product lines, collections. A field like ",[392,766,767],{},"title"," makes no sense here, because every title would become a suggestion.",[337,770,771],{},"A field value scores like a query searched about twice, so popular queries rank above it and one-off queries below it.",[590,773,776,780,790],{"name":449,"type":592,"default":774,"values":775},"2","1 to 1000",[596,777,779],{"id":778},"minimum-searches-to-qualify","Minimum searches to qualify",[330,781,782,783,786,787,789],{},"How many different visitors must have searched a query, with results, before it becomes a suggestion. Each distinct ",[392,784,785],{},"sessionId"," sent with search counts once; searches without a ",[392,788,785],{}," count one each.",[606,791,792],{"v-slot:tips":463},[334,793,794,800],{},[337,795,796,797,799],{},"Send a stable ",[392,798,785],{}," with every search from the storefront. Then one shopper who repeats a phrase cannot turn it into a public suggestion.",[337,801,802],{},"Raise it on a busy store to keep rare or odd queries out. On a new store, 1 or 2 fills the list sooner.",[590,804,807,811,821],{"name":452,"type":592,"default":805,"values":806},"30","1 to 90",[596,808,810],{"id":809},"lookback","Lookback",[330,812,813,814,372,817,820],{},"How many days of searches the build reads, 1 to 90. In the cabinet: ",[340,815,816],{},"Popular searches",[340,818,819],{},"In the last"," days.",[606,822,823],{"v-slot:tips":463},[334,824,825],{},[337,826,827],{},"30 days follows seasons and trends. A longer window keeps steady sellers but lets last season's queries linger.",[590,829,833,837,843],{"name":830,"type":831,"values":832},"suggestKey","string","16 URL-safe characters, read-only",[596,834,836],{"id":835},"suggest-key","Suggest key",[330,838,839,840,842],{},"The public handle of the index's suggestions, used in the suggest URL. It is created with the config and never changes. The cabinet shows it at the top of the ",[340,841,230],{}," page.",[606,844,845],{"v-slot:tips":463},[334,846,847],{},[337,848,849],{},"The suggest key is not a secret, and it is no credential. The request still needs an API key of the same project.",[325,851,354],{"id":852},"custom-suggestions",[330,854,855],{},"A custom suggestion is a text you want offered, with a weight and an optional facet hint. Use it for campaign names, new product lines nobody has searched for yet, or to push one completion above the rest.",[405,857],{"auth":407,"method":394,"path":858},"\u002Fv1\u002Fprojects\u002F:projectId\u002Findices\u002F:indexId\u002Fsuggestions\u002Fcustom",[405,860],{"auth":411,"method":861,"path":858},"POST",[405,863],{"auth":411,"method":864,"path":865},"DELETE","\u002Fv1\u002Fprojects\u002F:projectId\u002Findices\u002F:indexId\u002Fsuggestions\u002Fcustom\u002F:suggestionId",[458,867,869],{"className":460,"code":868,"language":462,"meta":463,"style":463},"curl -X POST https:\u002F\u002Fapi.zaproo-search.com\u002Fv1\u002Fprojects\u002F$PROJECT_ID\u002Findices\u002F$INDEX_ID\u002Fsuggestions\u002Fcustom \\\n  -H \"Authorization: Bearer $ZS_KEY\" -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\"text\": \"black friday deals\", \"weight\": 20, \"facetHint\": {\"key\": \"category\", \"value\": \"Deals\"}}'\n",[392,870,871,893,909],{"__ignoreMap":463},[467,872,873,875,877,880,882,884,886,888,891],{"class":469,"line":470},[467,874,474],{"class":473},[467,876,478],{"class":477},[467,878,879],{"class":481}," POST",[467,881,485],{"class":481},[467,883,489],{"class":488},[467,885,492],{"class":481},[467,887,495],{"class":488},[467,889,890],{"class":481},"\u002Fsuggestions\u002Fcustom",[467,892,502],{"class":501},[467,894,895,897,899,901,903,905,907],{"class":469,"line":505},[467,896,508],{"class":477},[467,898,511],{"class":481},[467,900,514],{"class":488},[467,902,517],{"class":481},[467,904,520],{"class":477},[467,906,523],{"class":481},[467,908,502],{"class":501},[467,910,911,913],{"class":469,"line":528},[467,912,531],{"class":477},[467,914,915],{"class":481}," '{\"text\": \"black friday deals\", \"weight\": 20, \"facetHint\": {\"key\": \"category\", \"value\": \"Deals\"}}'\n",[917,918,919,929,936],"field-group",{},[920,921,923],"field",{"name":922,"type":831,":required":616},"text",[330,924,925,926,456],{},"1 to 100 characters. Unique per index after lowercasing and collapsing spaces, otherwise ",[392,927,928],{},"409 SUGGESTION_TAKEN",[920,930,933],{"name":931,"type":932,":required":616},"weight","number",[330,934,935],{},"Above 0, up to 1,000,000. It becomes the suggestion's score as is.",[920,937,940],{"name":938,"type":939},"facetHint","{ key, value } | null",[330,941,942,943,456],{},"The field and value the suggestion points at. Defaults to ",[392,944,713],{},[330,946,947,948,951],{},"An index holds up to 1000 custom suggestions; one more answers ",[392,949,950],{},"409 SUGGESTION_LIMIT_REACHED",". A new or deleted custom suggestion shows up with the next build.",[596,953,954],{"id":931},"Weight",[330,956,957,958,961],{},"A query scores ",[392,959,960],{},"log1p(searches)",", the natural log of one plus the number of visitors who searched it. A query searched by 100 visitors scores about 4.6, by 10,000 about 9.2. Your weight is compared with that number directly:",[963,964,965,977],"table",{},[966,967,968],"thead",{},[969,970,971,974],"tr",{},[972,973,954],"th",{},[972,975,976],{},"Ranks",[978,979,980,989,997,1005],"tbody",{},[969,981,982,986],{},[983,984,985],"td",{},"1",[983,987,988],{},"Like a field value: above queries searched once, below anything popular.",[969,990,991,994],{},[983,992,993],{},"5",[983,995,996],{},"Above queries with fewer than about 150 visitors.",[969,998,999,1002],{},[983,1000,1001],{},"10",[983,1003,1004],{},"Above queries with fewer than about 22,000 visitors.",[969,1006,1007,1010],{},[983,1008,1009],{},"15 and above",[983,1011,1012],{},"Above every query.",[330,1014,1015],{},"When a custom suggestion has the same text as a query or a field value, the custom one wins: its weight and its hint are used.",[325,1017,1019],{"id":1018},"rebuilding","Rebuilding",[330,1021,1022],{},"A worker rebuilds every index that has a suggest config once an hour. It reads the queries of the lookback window, the values of the configured fields and the custom suggestions, writes a new suggestion index and swaps it in, so suggest keeps answering during the build. Queries that are a misspelling of a far more popular one (\"samsnug tv\" next to \"samsung tv\") are dropped.",[330,1024,1025,1026,1028],{},"Press ",[340,1027,367],{}," after adding custom suggestions, changing the field list or uploading a new catalog. It queues a task; the cabinet shows its status and, when it is done, how many suggestions the new index holds.",[405,1030],{"auth":411,"method":861,"path":1031},"\u002Fv1\u002Fprojects\u002F:projectId\u002Findices\u002F:indexId\u002Fsuggestions\u002Frebuild",[458,1033,1035],{"className":460,"code":1034,"language":462,"meta":463,"style":463},"curl -X POST https:\u002F\u002Fapi.zaproo-search.com\u002Fv1\u002Fprojects\u002F$PROJECT_ID\u002Findices\u002F$INDEX_ID\u002Fsuggestions\u002Frebuild \\\n  -H \"Authorization: Bearer $ZS_KEY\"\n# 202 {\"taskId\": \"...\"}\n",[392,1036,1037,1058,1069],{"__ignoreMap":463},[467,1038,1039,1041,1043,1045,1047,1049,1051,1053,1056],{"class":469,"line":470},[467,1040,474],{"class":473},[467,1042,478],{"class":477},[467,1044,879],{"class":481},[467,1046,485],{"class":481},[467,1048,489],{"class":488},[467,1050,492],{"class":481},[467,1052,495],{"class":488},[467,1054,1055],{"class":481},"\u002Fsuggestions\u002Frebuild",[467,1057,502],{"class":501},[467,1059,1060,1062,1064,1066],{"class":469,"line":505},[467,1061,508],{"class":477},[467,1063,511],{"class":481},[467,1065,514],{"class":488},[467,1067,1068],{"class":481},"\"\n",[467,1070,1071],{"class":469,"line":528},[467,1072,1074],{"class":1073},"sq92B","# 202 {\"taskId\": \"...\"}\n",[330,1076,1077,1078,1081],{},"Poll ",[392,1079,1080],{},"GET \u002Fv1\u002Fprojects\u002F:projectId\u002Ftasks\u002F:taskId"," like any other task. The hourly schedule skips an index whose build is already queued or running.",[325,1083,1085],{"id":1084},"the-suggest-request","The suggest request",[330,1087,1088,1089,1091],{},"The storefront calls one route with the suggest key. The body holds only ",[392,1090,645],{},", up to 100 characters.",[405,1093],{"auth":1094,"method":861,"path":1095},"Public key from an allowed origin, or a secret key of the same project","\u002Fv1\u002Fsuggest\u002F:suggestKey",[1097,1098,1099,1147],"tabs",{},[1100,1101,1102],"tabs-item",{"label":474},[458,1103,1105],{"className":460,"code":1104,"language":462,"meta":463,"style":463},"curl -X POST https:\u002F\u002Fapi.zaproo-search.com\u002Fv1\u002Fsuggest\u002F$SUGGEST_KEY \\\n  -H \"Authorization: Bearer $ZS_KEY\" -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\"q\": \"sams\"}'\n",[392,1106,1107,1124,1140],{"__ignoreMap":463},[467,1108,1109,1111,1113,1115,1118,1121],{"class":469,"line":470},[467,1110,474],{"class":473},[467,1112,478],{"class":477},[467,1114,879],{"class":481},[467,1116,1117],{"class":481}," https:\u002F\u002Fapi.zaproo-search.com\u002Fv1\u002Fsuggest\u002F",[467,1119,1120],{"class":488},"$SUGGEST_KEY ",[467,1122,1123],{"class":501},"\\\n",[467,1125,1126,1128,1130,1132,1134,1136,1138],{"class":469,"line":505},[467,1127,508],{"class":477},[467,1129,511],{"class":481},[467,1131,514],{"class":488},[467,1133,517],{"class":481},[467,1135,520],{"class":477},[467,1137,523],{"class":481},[467,1139,502],{"class":501},[467,1141,1142,1144],{"class":469,"line":528},[467,1143,531],{"class":477},[467,1145,1146],{"class":481}," '{\"q\": \"sams\"}'\n",[1100,1148,1150,1157],{"label":1149},"MCP",[458,1151,1155],{"className":1152,"code":1154,"language":922,"meta":463},[1153],"language-text","Suggest completions for \"sams\" on the products index.\n",[392,1156,1154],{"__ignoreMap":463},[330,1158,1159,1160,1163],{},"The agent calls the ",[392,1161,1162],{},"suggest"," tool with the index id. It answers the same as the public route.",[458,1165,1169],{"className":1166,"code":1167,"language":1168,"meta":463,"style":463},"language-json shiki shiki-themes github-light-high-contrast github-light-high-contrast github-dark-high-contrast","{\n  \"suggestions\": [\n    {\"text\": \"samsung tv\", \"kind\": \"query\", \"facetHint\": {\"key\": \"category\", \"value\": \"TV\"}},\n    {\"text\": \"Samsung\", \"kind\": \"field\", \"facetHint\": {\"key\": \"brand\", \"value\": \"Samsung\"}},\n    {\"text\": \"samsung soundbar\", \"kind\": \"query\", \"facetHint\": null}\n  ],\n  \"searchProfileKey\": \"PROFILE_KEY\",\n  \"tookMs\": 4\n}\n","json",[392,1170,1171,1176,1185,1238,1281,1311,1316,1329,1339],{"__ignoreMap":463},[467,1172,1173],{"class":469,"line":470},[467,1174,1175],{"class":488},"{\n",[467,1177,1178,1182],{"class":469,"line":505},[467,1179,1181],{"class":1180},"sb7M8","  \"suggestions\"",[467,1183,1184],{"class":488},": [\n",[467,1186,1187,1190,1193,1196,1199,1201,1204,1206,1209,1211,1214,1217,1220,1222,1225,1227,1230,1232,1235],{"class":469,"line":528},[467,1188,1189],{"class":488},"    {",[467,1191,1192],{"class":1180},"\"text\"",[467,1194,1195],{"class":488},": ",[467,1197,1198],{"class":481},"\"samsung tv\"",[467,1200,372],{"class":488},[467,1202,1203],{"class":1180},"\"kind\"",[467,1205,1195],{"class":488},[467,1207,1208],{"class":481},"\"query\"",[467,1210,372],{"class":488},[467,1212,1213],{"class":1180},"\"facetHint\"",[467,1215,1216],{"class":488},": {",[467,1218,1219],{"class":1180},"\"key\"",[467,1221,1195],{"class":488},[467,1223,1224],{"class":481},"\"category\"",[467,1226,372],{"class":488},[467,1228,1229],{"class":1180},"\"value\"",[467,1231,1195],{"class":488},[467,1233,1234],{"class":481},"\"TV\"",[467,1236,1237],{"class":488},"}},\n",[467,1239,1240,1242,1244,1246,1249,1251,1253,1255,1258,1260,1262,1264,1266,1268,1271,1273,1275,1277,1279],{"class":469,"line":537},[467,1241,1189],{"class":488},[467,1243,1192],{"class":1180},[467,1245,1195],{"class":488},[467,1247,1248],{"class":481},"\"Samsung\"",[467,1250,372],{"class":488},[467,1252,1203],{"class":1180},[467,1254,1195],{"class":488},[467,1256,1257],{"class":481},"\"field\"",[467,1259,372],{"class":488},[467,1261,1213],{"class":1180},[467,1263,1216],{"class":488},[467,1265,1219],{"class":1180},[467,1267,1195],{"class":488},[467,1269,1270],{"class":481},"\"brand\"",[467,1272,372],{"class":488},[467,1274,1229],{"class":1180},[467,1276,1195],{"class":488},[467,1278,1248],{"class":481},[467,1280,1237],{"class":488},[467,1282,1283,1285,1287,1289,1292,1294,1296,1298,1300,1302,1304,1306,1308],{"class":469,"line":543},[467,1284,1189],{"class":488},[467,1286,1192],{"class":1180},[467,1288,1195],{"class":488},[467,1290,1291],{"class":481},"\"samsung soundbar\"",[467,1293,372],{"class":488},[467,1295,1203],{"class":1180},[467,1297,1195],{"class":488},[467,1299,1208],{"class":481},[467,1301,372],{"class":488},[467,1303,1213],{"class":1180},[467,1305,1195],{"class":488},[467,1307,713],{"class":477},[467,1309,1310],{"class":488},"}\n",[467,1312,1313],{"class":469,"line":549},[467,1314,1315],{"class":488},"  ],\n",[467,1317,1318,1321,1323,1326],{"class":469,"line":555},[467,1319,1320],{"class":1180},"  \"searchProfileKey\"",[467,1322,1195],{"class":488},[467,1324,1325],{"class":481},"\"PROFILE_KEY\"",[467,1327,1328],{"class":488},",\n",[467,1330,1331,1334,1336],{"class":469,"line":561},[467,1332,1333],{"class":1180},"  \"tookMs\"",[467,1335,1195],{"class":488},[467,1337,1338],{"class":477},"4\n",[467,1340,1341],{"class":469,"line":567},[467,1342,1310],{"class":488},[330,1344,1345,1346,1349],{},"A suggest key of another project, or of an index outside the key's index scope, answers ",[392,1347,1348],{},"404 SUGGEST_NOT_FOUND",". Before the first build, every request answers an empty list. Suggest has its own rate limit, twice that of search, because it fires on every keystroke: 1200 requests a minute per key and 2400 per client IP.",[330,1351,1352,1353,1355],{},"The cabinet's ",[340,1354,382],{}," panel uses a second route that takes the index id instead of the suggest key and answers the same:",[405,1357],{"auth":407,"method":861,"path":1358},"\u002Fv1\u002Fprojects\u002F:projectId\u002Findices\u002F:indexId\u002Fsuggest",[330,1360,1361,1362,1365,1366,1369],{},"Call the public route from the shopper's browser with a public key whose allowed origins list your shop's domains. From a server, use a secret key with read access, scoped to the index: a server sends no ",[392,1363,1364],{},"Origin"," header, so a public key answers ",[392,1367,1368],{},"403 ORIGIN_NOT_ALLOWED"," there.",[596,1371,1373],{"id":1372},"suggestion-kinds","Suggestion kinds",[963,1375,1376,1392],{},[966,1377,1378],{},[969,1379,1380,1385,1388],{},[972,1381,1382],{},[392,1383,1384],{},"kind",[972,1386,1387],{},"Comes from",[972,1389,1390],{},[392,1391,938],{},[978,1393,1394,1407,1421],{},[969,1395,1396,1401,1404],{},[983,1397,1398],{},[392,1399,1400],{},"query",[983,1402,1403],{},"A search that shoppers made and that found products",[983,1405,1406],{},"The category most of its products sit in, when there is one",[969,1408,1409,1413,1418],{},[983,1410,1411],{},[392,1412,920],{},[983,1414,1415,1416],{},"A value of one of the configured ",[392,1417,446],{},[983,1419,1420],{},"That field and value",[969,1422,1423,1428,1431],{},[983,1424,1425],{},[392,1426,1427],{},"custom",[983,1429,1430],{},"A custom suggestion",[983,1432,1433,1434],{},"The hint you gave it, or ",[392,1435,713],{},[330,1437,1438],{},"Queries are shown as they are stored, lowercased with spaces collapsed. Field values and custom suggestions keep the spelling you gave them.",[325,1440,1442],{"id":1441},"common-mistakes","Common mistakes",[334,1444,1445,1456,1462],{},[337,1446,1447,1450,1451,1453,1454,456],{},[340,1448,1449],{},"No suggestions on a new store."," Queries need searches first. Add the brand field under ",[340,1452,348],{}," and a few custom suggestions, then press ",[340,1455,367],{},[337,1457,1458,1461],{},[340,1459,1460],{},"A change to the field list does nothing."," Field values, the minimum count and the lookback only apply with the next build.",[337,1463,1464,1467,1468,1470,1471,1473],{},[340,1465,1466],{},"Suggestions from tests and the playground."," Searches with a saved profile from the cabinet playground are logged like storefront searches. Keep ",[392,1469,449],{}," at 2 or more and send a ",[392,1472,785],{}," from the storefront, so a handful of test searches from one person stays out.",[325,1475,1477],{"id":1476},"related","Related",[334,1479,1480,1484,1488],{},[337,1481,1482],{},[730,1483,248],{"href":249},[337,1485,1486],{},[730,1487,200],{"href":201},[337,1489,1490],{},[730,1491,278],{"href":279},[1493,1494,1495],"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}html pre.shiki code .sb7M8, html code.shiki .sb7M8{--shiki-light:#024C1A;--shiki-default:#024C1A;--shiki-dark:#72F088}",{"title":463,"searchDepth":505,"depth":505,"links":1497},[1498,1499,1510,1513,1514,1517,1518],{"id":327,"depth":505,"text":328},{"id":386,"depth":505,"text":387,"children":1500},[1501,1502,1503,1504,1505,1506,1507,1508,1509],{"id":598,"depth":528,"text":599},{"id":619,"depth":528,"text":620},{"id":638,"depth":528,"text":639},{"id":680,"depth":528,"text":681},{"id":716,"depth":528,"text":717},{"id":739,"depth":528,"text":348},{"id":778,"depth":528,"text":779},{"id":809,"depth":528,"text":810},{"id":835,"depth":528,"text":836},{"id":852,"depth":505,"text":354,"children":1511},[1512],{"id":931,"depth":528,"text":954},{"id":1018,"depth":505,"text":1019},{"id":1084,"depth":505,"text":1085,"children":1515},[1516],{"id":1372,"depth":528,"text":1373},{"id":1441,"depth":505,"text":1442},{"id":1476,"depth":505,"text":1477},"md",{},{"icon":232},{"title":230,"description":239},"pp1BO1iaaxailzOKaFFrGFaJ_JhTMKq0cvchM5gh-lE",[1525,1526],{"title":224,"path":225,"stem":226,"description":227,"icon":228,"children":-1},{"title":248,"path":249,"stem":250,"description":251,"icon":243,"children":-1},1792794344465]