{"ok":true,"meta":{"generatedAt":"2026-06-30T13:23:05.997Z"},"data":{"status":"ok","manifest":{"version":"tzv3-search-index-manifest-v1","endpoint":"/api/search/index-manifest","generatedAt":"2026-06-30T13:23:05.990Z","productionReady":true,"index":{"provider":"Elastic Cloud","name":"profiles","searchPath":"/{index}/_search","documentVersion":"tzv3-search-profile-document-v1","documentCount":8,"bulkAction":"index","idField":"slug"},"settings":{"number_of_shards":1,"number_of_replicas":1,"analysis":{"analyzer":{"profile_text":{"type":"custom","tokenizer":"standard","filter":["lowercase","asciifolding"]}},"normalizer":{"lowercase_keyword":{"type":"custom","filter":["lowercase","asciifolding"]}}}},"mappings":{"dynamic":"strict","properties":{"version":{"type":"keyword"},"id":{"type":"keyword"},"slug":{"type":"keyword"},"name":{"type":"text","analyzer":"profile_text","fields":{"keyword":{"type":"keyword","normalizer":"lowercase_keyword"}}},"age":{"type":"short"},"city":{"type":"text","analyzer":"profile_text","fields":{"keyword":{"type":"keyword","normalizer":"lowercase_keyword"}}},"district":{"type":"text","analyzer":"profile_text","fields":{"keyword":{"type":"keyword","normalizer":"lowercase_keyword"}}},"status":{"type":"text","analyzer":"profile_text","fields":{"keyword":{"type":"keyword","normalizer":"lowercase_keyword"}}},"statusLabel":{"type":"text","analyzer":"profile_text","fields":{"keyword":{"type":"keyword","normalizer":"lowercase_keyword"}}},"style":{"type":"text","analyzer":"profile_text","fields":{"keyword":{"type":"keyword","normalizer":"lowercase_keyword"}}},"mood":{"type":"text","analyzer":"profile_text","fields":{"keyword":{"type":"keyword","normalizer":"lowercase_keyword"}}},"languages":{"type":"text","analyzer":"profile_text","fields":{"keyword":{"type":"keyword","normalizer":"lowercase_keyword"}}},"tags":{"type":"text","analyzer":"profile_text","fields":{"keyword":{"type":"keyword","normalizer":"lowercase_keyword"}}},"intro":{"type":"text","analyzer":"profile_text"},"details":{"type":"text","analyzer":"profile_text"},"rate":{"type":"keyword"},"profilePath":{"type":"keyword"},"canonicalUrl":{"type":"keyword"},"scheduleHref":{"type":"keyword","index":false},"isPublished":{"type":"boolean"},"isVip":{"type":"boolean"},"updatedAt":{"type":"date"},"facets":{"properties":{"city":{"type":"keyword","normalizer":"lowercase_keyword"},"style":{"type":"keyword","normalizer":"lowercase_keyword"},"status":{"type":"keyword"},"languages":{"type":"keyword","normalizer":"lowercase_keyword"},"tags":{"type":"keyword","normalizer":"lowercase_keyword"}}},"sort":{"properties":{"seedOrder":{"type":"integer"},"vipBoost":{"type":"byte"},"availableBoost":{"type":"byte"}}},"searchText":{"type":"text","analyzer":"profile_text"}}},"sampleSearchBody":{"size":12,"_source":["slug"],"query":{"bool":{"must":[{"multi_match":{"query":"vip english","fields":["name^4","slug^3","city^2","district^2","style^2","mood","tags^2","languages","intro","details"],"type":"best_fields","operator":"and","fuzziness":"AUTO"}}],"filter":[{"term":{"city.keyword":"Санкт-Петербург"}},{"term":{"style.keyword":"VIP"}},{"term":{"status.keyword":"available"}}]}}},"documents":[{"version":"tzv3-search-profile-document-v1","id":"sofia","slug":"sofia","name":"София","age":23,"city":"Санкт-Петербург","district":"Центр","status":"tonight","statusLabel":"NEW","style":"Премиум","mood":"спокойная классика","languages":["EN","RU"],"tags":["Выезд","Центр","NEW"],"intro":"София выбирает камерные встречи, мягкий тон общения и аккуратный вечерний стиль.","details":["Анкета проходит ручную проверку перед публикацией в каталоге.","Доступность и время встречи вынесены в отдельный модуль расписания.","Для уточнения деталей используйте Telegram или заявку через расписание."],"rate":"25000 ₽ 1 час","profilePath":"/profiles/sofia","canonicalUrl":"https://www.artescort.vip/profiles/sofia","scheduleHref":"https://australia-wlkk.vercel.app/scheduling/embed?site=artesc&lang=en&profile=sofia","isPublished":true,"isVip":false,"updatedAt":"2026-06-02T00:00:00.000Z","facets":{"city":"Санкт-Петербург","style":"Премиум","status":"tonight","languages":["EN","RU"],"tags":["Выезд","Центр","NEW"]},"sort":{"seedOrder":1,"vipBoost":0,"availableBoost":0},"searchText":"София sofia Санкт-Петербург Центр Премиум спокойная классика NEW София выбирает камерные встречи, мягкий тон общения и аккуратный вечерний стиль. NEW Центр Выезд RU EN Анкета проходит ручную проверку перед публикацией в каталоге. Доступность и время встречи вынесены в отдельный модуль расписания. Для уточнения деталей используйте Telegram или заявку через расписание."},{"version":"tzv3-search-profile-document-v1","id":"mira","slug":"mira","name":"Мира","age":26,"city":"Санкт-Петербург","district":"Петроградская","status":"available","statusLabel":"На месте","style":"VIP","mood":"интеллигентная легкость","languages":["EN","FR","RU"],"tags":["На месте","EN","VIP"],"intro":"Мира держит баланс между светской подачей и живым разговором, хорошо чувствует темп вечера.","details":["Анкета проходит ручную проверку перед публикацией в каталоге.","Доступность и время встречи вынесены в отдельный модуль расписания.","Для уточнения деталей используйте Telegram или заявку через расписание."],"rate":"30000 ₽ 1 час","profilePath":"/profiles/mira","canonicalUrl":"https://www.artescort.vip/profiles/mira","scheduleHref":"https://australia-wlkk.vercel.app/scheduling/embed?site=artesc&lang=en&profile=mira","isPublished":true,"isVip":true,"updatedAt":"2026-06-02T00:00:00.000Z","facets":{"city":"Санкт-Петербург","style":"VIP","status":"available","languages":["EN","FR","RU"],"tags":["На месте","EN","VIP"]},"sort":{"seedOrder":2,"vipBoost":1,"availableBoost":1},"searchText":"Мира mira Санкт-Петербург Петроградская VIP интеллигентная легкость На месте Мира держит баланс между светской подачей и живым разговором, хорошо чувствует темп вечера. VIP EN На месте RU EN FR Анкета проходит ручную проверку перед публикацией в каталоге. Доступность и время встречи вынесены в отдельный модуль расписания. Для уточнения деталей используйте Telegram или заявку через расписание."},{"version":"tzv3-search-profile-document-v1","id":"vera","slug":"vera","name":"Вера","age":28,"city":"Санкт-Петербург","district":"Адмиралтейская","status":"private","statusLabel":"NEW","style":"Private","mood":"сдержанная уверенность","languages":["RU"],"tags":["Центр","NEW","Private"],"intro":"Вера работает с приватными заявками, где важны пунктуальность, конфиденциальность и ясные договоренности.","details":["Анкета проходит ручную проверку перед публикацией в каталоге.","Доступность и время встречи вынесены в отдельный модуль расписания.","Для уточнения деталей используйте Telegram или заявку через расписание."],"rate":"25000 ₽ 1 час","profilePath":"/profiles/vera","canonicalUrl":"https://www.artescort.vip/profiles/vera","scheduleHref":"https://australia-wlkk.vercel.app/scheduling/embed?site=artesc&lang=en&profile=vera","isPublished":true,"isVip":false,"updatedAt":"2026-06-02T00:00:00.000Z","facets":{"city":"Санкт-Петербург","style":"Private","status":"private","languages":["RU"],"tags":["Центр","NEW","Private"]},"sort":{"seedOrder":3,"vipBoost":0,"availableBoost":0},"searchText":"Вера vera Санкт-Петербург Адмиралтейская Private сдержанная уверенность NEW Вера работает с приватными заявками, где важны пунктуальность, конфиденциальность и ясные договоренности. NEW Private Центр RU Анкета проходит ручную проверку перед публикацией в каталоге. Доступность и время встречи вынесены в отдельный модуль расписания. Для уточнения деталей используйте Telegram или заявку через расписание."},{"version":"tzv3-search-profile-document-v1","id":"lina","slug":"lina","name":"Лина","age":28,"city":"Санкт-Петербург","district":"Маяковская","status":"available","statusLabel":"NEW","style":"Элит","mood":"яркая подача","languages":["RU"],"tags":["Маяковская","Салон","NEW"],"intro":"Лина подходит для тех, кому важны легкость общения и аккуратная подача.","details":["Анкета проходит ручную проверку перед публикацией в каталоге.","Доступность и время встречи вынесены в отдельный модуль расписания.","Для уточнения деталей используйте Telegram или заявку через расписание."],"rate":"20000 ₽ 1 час","profilePath":"/profiles/lina","canonicalUrl":"https://www.artescort.vip/profiles/lina","scheduleHref":"https://australia-wlkk.vercel.app/scheduling/embed?site=artesc&lang=en&profile=lina","isPublished":true,"isVip":false,"updatedAt":"2026-06-02T00:00:00.000Z","facets":{"city":"Санкт-Петербург","style":"Элит","status":"available","languages":["RU"],"tags":["Маяковская","Салон","NEW"]},"sort":{"seedOrder":4,"vipBoost":0,"availableBoost":1},"searchText":"Лина lina Санкт-Петербург Маяковская Элит яркая подача NEW Лина подходит для тех, кому важны легкость общения и аккуратная подача. NEW Маяковская Салон RU Анкета проходит ручную проверку перед публикацией в каталоге. Доступность и время встречи вынесены в отдельный модуль расписания. Для уточнения деталей используйте Telegram или заявку через расписание."},{"version":"tzv3-search-profile-document-v1","id":"ksenia","slug":"ksenia","name":"Ксения","age":22,"city":"Санкт-Петербург","district":"Невский","status":"tonight","statusLabel":"NEW","style":"Новые","mood":"мягкая энергия","languages":["EN","RU"],"tags":["Вечер","EN","NEW"],"intro":"Ксения сохраняет спокойный темп и внимательность к деталям встречи.","details":["Анкета проходит ручную проверку перед публикацией в каталоге.","Доступность и время встречи вынесены в отдельный модуль расписания.","Для уточнения деталей используйте Telegram или заявку через расписание."],"rate":"20000 ₽ 1 час","profilePath":"/profiles/ksenia","canonicalUrl":"https://www.artescort.vip/profiles/ksenia","scheduleHref":"https://australia-wlkk.vercel.app/scheduling/embed?site=artesc&lang=en&profile=ksenia","isPublished":true,"isVip":false,"updatedAt":"2026-06-02T00:00:00.000Z","facets":{"city":"Санкт-Петербург","style":"Новые","status":"tonight","languages":["EN","RU"],"tags":["Вечер","EN","NEW"]},"sort":{"seedOrder":5,"vipBoost":0,"availableBoost":0},"searchText":"Ксения ksenia Санкт-Петербург Невский Новые мягкая энергия NEW Ксения сохраняет спокойный темп и внимательность к деталям встречи. NEW EN Вечер RU EN Анкета проходит ручную проверку перед публикацией в каталоге. Доступность и время встречи вынесены в отдельный модуль расписания. Для уточнения деталей используйте Telegram или заявку через расписание."},{"version":"tzv3-search-profile-document-v1","id":"darina","slug":"darina","name":"Дарина","age":23,"city":"Санкт-Петербург","district":"Площадь Восстания","status":"available","statusLabel":"NEW","style":"Премиум","mood":"деликатный формат","languages":["RU"],"tags":["На месте","Центр","NEW"],"intro":"Дарина лучше раскрывается в заранее согласованном формате без спешки.","details":["Анкета проходит ручную проверку перед публикацией в каталоге.","Доступность и время встречи вынесены в отдельный модуль расписания.","Для уточнения деталей используйте Telegram или заявку через расписание."],"rate":"15000 ₽ 1 час","profilePath":"/profiles/darina","canonicalUrl":"https://www.artescort.vip/profiles/darina","scheduleHref":"https://australia-wlkk.vercel.app/scheduling/embed?site=artesc&lang=en&profile=darina","isPublished":true,"isVip":false,"updatedAt":"2026-06-02T00:00:00.000Z","facets":{"city":"Санкт-Петербург","style":"Премиум","status":"available","languages":["RU"],"tags":["На месте","Центр","NEW"]},"sort":{"seedOrder":6,"vipBoost":0,"availableBoost":1},"searchText":"Дарина darina Санкт-Петербург Площадь Восстания Премиум деликатный формат NEW Дарина лучше раскрывается в заранее согласованном формате без спешки. NEW Центр На месте RU Анкета проходит ручную проверку перед публикацией в каталоге. Доступность и время встречи вынесены в отдельный модуль расписания. Для уточнения деталей используйте Telegram или заявку через расписание."},{"version":"tzv3-search-profile-document-v1","id":"emma","slug":"emma","name":"Эмма","age":24,"city":"Санкт-Петербург","district":"Чернышевская","status":"private","statusLabel":"По запросу","style":"Private","mood":"камерный вечер","languages":["EN","RU"],"tags":["Центр","EN","Private"],"intro":"Эмма принимает только подтвержденные заявки и не публикует открытые слоты.","details":["Анкета проходит ручную проверку перед публикацией в каталоге.","Доступность и время встречи вынесены в отдельный модуль расписания.","Для уточнения деталей используйте Telegram или заявку через расписание."],"rate":"25000 ₽ 1 час","profilePath":"/profiles/emma","canonicalUrl":"https://www.artescort.vip/profiles/emma","scheduleHref":"https://australia-wlkk.vercel.app/scheduling/embed?site=artesc&lang=en&profile=emma","isPublished":true,"isVip":false,"updatedAt":"2026-06-02T00:00:00.000Z","facets":{"city":"Санкт-Петербург","style":"Private","status":"private","languages":["EN","RU"],"tags":["Центр","EN","Private"]},"sort":{"seedOrder":7,"vipBoost":0,"availableBoost":0},"searchText":"Эмма emma Санкт-Петербург Чернышевская Private камерный вечер По запросу Эмма принимает только подтвержденные заявки и не публикует открытые слоты. Private EN Центр RU EN Анкета проходит ручную проверку перед публикацией в каталоге. Доступность и время встречи вынесены в отдельный модуль расписания. Для уточнения деталей используйте Telegram или заявку через расписание."},{"version":"tzv3-search-profile-document-v1","id":"nikol","slug":"nikol","name":"Николь","age":26,"city":"Санкт-Петербург","district":"Гостиный двор","status":"available","statusLabel":"На месте","style":"VIP","mood":"уверенная классика","languages":["RU"],"tags":["На месте","Центр","VIP"],"intro":"Николь держит уверенную подачу и аккуратно ведет коммуникацию.","details":["Анкета проходит ручную проверку перед публикацией в каталоге.","Доступность и время встречи вынесены в отдельный модуль расписания.","Для уточнения деталей используйте Telegram или заявку через расписание."],"rate":"25000 ₽ 1 час","profilePath":"/profiles/nikol","canonicalUrl":"https://www.artescort.vip/profiles/nikol","scheduleHref":"https://australia-wlkk.vercel.app/scheduling/embed?site=artesc&lang=en&profile=nikol","isPublished":true,"isVip":true,"updatedAt":"2026-06-02T00:00:00.000Z","facets":{"city":"Санкт-Петербург","style":"VIP","status":"available","languages":["RU"],"tags":["На месте","Центр","VIP"]},"sort":{"seedOrder":8,"vipBoost":1,"availableBoost":1},"searchText":"Николь nikol Санкт-Петербург Гостиный двор VIP уверенная классика На месте Николь держит уверенную подачу и аккуратно ведет коммуникацию. VIP На месте Центр RU Анкета проходит ручную проверку перед публикацией в каталоге. Доступность и время встречи вынесены в отдельный модуль расписания. Для уточнения деталей используйте Telegram или заявку через расписание."}],"slugs":["sofia","mira","vera","lina","ksenia","darina","emma","nikol"],"hashes":{"settings":"53b7d72463b4b50d5223d5549c7b0dbe1a0eff185d821d02b257b638aad45fee","mappings":"af64be91ab32520c1b39b0b758137bbfbd6214e90d81e28086717ee51ee9f243","documents":"8f360482b07dc95c202fd8016a73393585c34dbcbb9608601b004afce4f2d864","documentHashes":{"sofia":"555b07b941a2d24a48e95cc897e190a1248c6fdf21148890bfd5f04a4107c510","mira":"87b773d6e84be16c3a3d35c8b647f235e32479f16a4810877821cef1dbc11602","vera":"15f5682348559f53953a33f91827d96ab77a1d125c19b1584d85686732d4c116","lina":"e0792756e111e0b277cf74d1a9bf2480dd7e378f045b0b44db2c2b9dc2f28f41","ksenia":"d655ee6aee217d330df16cbe081e5336c83b81c8e19d6642eff74b990338e1bf","darina":"9a367cd15c0c161fd391c0dab9e0737a1f36fe45801eb5f09d3e0f557bd649be","emma":"a2ae2fd798100ac5049f5f3ced2c9e482f0181b533f84d9ddfbe1370bf4f6242","nikol":"f96236509a6d37110c179a6a927537884c48cb39c43be663122ff062d2fe951d"},"fullIndexInput":"74defefad6ca9dd8a06313e0a4c9b69991ef65152583cbdef0631ca07e949b51"},"redisCacheContract":{"provider":"Upstash Redis","keyFormat":"tzv3:search:{sha256-normalized-query}","ttlSeconds":60,"storesRawQueryText":false},"importPlan":{"environment":["ELASTICSEARCH_URL","ELASTICSEARCH_API_KEY","ELASTICSEARCH_INDEX","ELASTICSEARCH_SEARCH_PATH","UPSTASH_REDIS_REST_URL","UPSTASH_REDIS_REST_TOKEN","SEARCH_CACHE_TTL_SECONDS"],"steps":["Create or update the Elastic profile index with this settings/mappings contract.","Use /api/search/bulk-payload or npm run search:bulk-payload to export the create-index body and bulk NDJSON.","Bulk index every document with _id equal to slug and action index.","Keep /api/search result hydration DB/static-first; Elastic returns slug order only.","Enable Upstash Redis only for repeated result-order cache keys."],"verification":["npm run search:bulk-payload","curl -s https://your-domain.example/api/search/bulk-payload","npm run search:audit","curl -s https://your-domain.example/api/search/index-manifest","curl -s 'https://your-domain.example/api/search?q=vip%20english'"]},"safety":{"mode":"read-only-manifest","writes":false,"printsSecrets":false,"note":"This endpoint serializes the public profile index contract only. It never connects to Elastic, never writes Redis keys, and never prints Elastic or Upstash credentials."}}}}