{"id":82734,"date":"2020-05-24T13:42:22","date_gmt":"2020-05-24T11:42:22","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/optimizacziya-nagruzki-na-highload-proekte-s-pomoshhyu-elasticsearch"},"modified":"2020-05-24T13:42:22","modified_gmt":"2020-05-24T11:42:22","slug":"optimizacziya-nagruzki-na-highload-proekte-s-pomoshhyu-elasticsearch","status":"publish","type":"post","link":"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/optimizacziya-nagruzki-na-highload-proekte-s-pomoshhyu-elasticsearch","title":{"rendered":"Highload-projekti koormuse optimeerimine ElasticSearch'i abil","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Tere, Habr! Minu nimi on Maksim Vasiljev, t\u00f6\u00f6tan anal\u00fc\u00fctiku ja projektijuhina FINCHis. T\u00e4na tahan r\u00e4\u00e4kida, kuidas me ElasticSearch'i abil suutsime t\u00f6\u00f6delda 15 miljonit p\u00e4ringut kuue minutiga ja optimeerida iga p\u00e4ev koormust meie kliendi veebisaidil. Kahjuks peame hakkama ilma nimedeta, kuna meil on NDA, loodan, et artikli sisu sellest ei kannata. alustame.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2>Kuidas projekt on korraldatud<\/h2>\n<p>\nMeie tagaosas loome teenuseid, mis tagavad meie kliendi veebisaitide ja mobiilirakenduse toimimise. \u00dclevaate struktuurist saab n\u00e4ha skeemilt:<\/p>\n<p><img decoding=\"async\" alt=\"Highload-projekti koormuse optimeerimine ElasticSearch&#039;i abil\" src=\"\/wp-content\/uploads\/2020\/05\/7bda10a9965163c2b175b501f50bc342.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nT\u00f6\u00f6tamise k\u00e4igus t\u00f6\u00f6tleme suurt hulka tehinguid: oste, v\u00e4ljamakseid, kasutajate saldooperatsioone, mille kohta s\u00e4ilitame palju logisid, samuti impordime ja ekspordime neid andmeid v\u00e4listesse s\u00fcsteemidesse. <\/p>\n<p>Samuti toimuvad tagasiprotsessid, kui saame andmeid kliendilt ja edastame need kasutajatele. Lisaks on veel maksete ja boonuste programmidega seonduvad protsessid.<\/p>\n<h2>L\u00fchikene eelajaloo<\/h2>\n<p>\nAlguses kasutasime ainulaadse andmete salvestusena PostgreSQLi. Selle standardseid andmebaaside eeliseid: tehingud, arenenud andmete p\u00e4ringukeel, lai integreerimise t\u00f6\u00f6riistade kogum; koos hea j\u00f5udlusega rahuldas meie vajadusi piisavalt kaua. <\/p>\n<p>S\u00e4ilitasime Postgresis absoluutselt k\u00f5ik andmed: tehingutest kuni uudisteni. Kuid kasutajate arv kasvas ja koos sellega ka p\u00e4ringute arv.<\/p>\n<p><i>Arusaamiseks, aastane seansside arv 2017. aastal ainult lauaarvutite veebisaidil - 131 miljonit. 2018 - 125 miljonit. 2019, j\u00e4lle 130 miljonit. Lisage sinna veel 100-200 miljonit mobiiliversiooni ja mobiilirakenduse p\u00e4ringutest ning saate tohutu hulga p\u00e4ringuid. <\/i><\/p>\n<p>Kuna projekt kasvas, ei suutnud Postgres koormusega enam toime tulla, me j\u00e4ime maha - ilmus suur hulk erinevaid p\u00e4ringuid, mille jaoks ei suutnud me piisavalt indekseid luua. <\/p>\n<p>M\u00f5istsime, et on vajadus teiste andmete salvestamise lahenduste j\u00e4rele, mis tagaksid meie vajadused ja leevendaksid PostgreSQL-i koormust. V\u00f5imalike variantidena kaalume Elasticsearch'i ja MongoDB-d. Viimane kaotas j\u00e4rgmistes punktides:<\/p>\n<ol>\n<li>Andmete indekseerimise aeglustumine koos indeksi mahu kasvuga. Elasticis kiirus ei s\u00f5ltu andmete mahust.<\/li>\n<li>Puudub t\u00e4isteksti otsing<\/li>\n<\/ol>\n<p>\nNii valisime endale Elasticu ja valmistusime \u00fcleminekuks. <\/p>\n<h2>\u00dcleminek Elasticule<\/h2>\n<p>\n1. Alustasime \u00fcleminekut m\u00fc\u00fcgikohtade otsinguteenusele. Meie kliendil on kokku umbes 70 000 m\u00fc\u00fcgikohta ja samas on veebilehe ja rakenduse jaoks vajalikud mitmed otsingu t\u00fc\u00fcbid:<\/p>\n<ul>\n<li>Tekstiotsing asula nime j\u00e4rgi<\/li>\n<li>Geotsing m\u00e4\u00e4ratud raadiuses m\u00f5nest punktist. N\u00e4iteks, kui kasutaja soovib n\u00e4ha, millised m\u00fc\u00fcgikohad on tema kodule k\u00f5ige l\u00e4hemal.<\/li>\n<li>Otsing m\u00e4\u00e4ratud ruudu j\u00e4rgi \u2013 kasutaja joonistab kaardile ruudu ja talle n\u00e4idatakse k\u00f5iki punkte selle raadiuse sees. <\/li>\n<li>Otsing t\u00e4iendavate filtrite j\u00e4rgi. M\u00fc\u00fcgikohad erinevad omavahel tootevaliku poolest. <\/li>\n<\/ul>\n<p>\nKui r\u00e4\u00e4kida organiseerimisest, siis Postgresis on meil andmeallikas nii kaardi kui ka uudiste jaoks, ja Elasticis tehakse Snapshoot originaalandmetest. Asi on selles, et algselt Postgres ei suudnud k\u00f5igi kriteeriumide j\u00e4rgi otsingut teha. K\u00fcll oli palju indekseid, mis v\u00f5isid ka \u00fcksteisega kattuda, seet\u00f5ttu kadus Postgresi planeerija \u00e4ra ja ei saanud aru, millist indeksit kasutada. <\/p>\n<p>2. J\u00e4rgmine oli uudiste rubriik. Veebilehel ilmuvad iga p\u00e4ev publikatsioonid, et kasutaja ei eksiks informatsiooni tulvas, tuleb andmed enne esitlust sorteerida. Selleks ongi vaja otsingut: veebilehel saab otsida teksti\u00fchenduse j\u00e4rgi ning samal ajal aktiveerida t\u00e4iendavad filtrid, kuna need on samuti tehtud l\u00e4bi Elasticu. <\/p>\n<p>3. Siis viisime \u00fcle tehingute t\u00f6\u00f6tlemise. Kasutajad saavad veebilehe kaudu osta teatud kaupu ja osaleda auhindade loosimises. P\u00e4rast selliseid oste t\u00f6\u00f6tleme me suurt hulka andmeid, eriti n\u00e4dalavahetustel ja p\u00fchal. Kui v\u00f5rrelda, siis tavap\u00e4evadel on ostude arv umbes 1,5-2 miljonit, siis p\u00fchal v\u00f5ib number ulatuda 53 miljoni juurde.<\/p>\n<p>Samuti tuleb andmeid t\u00f6\u00f6delda minimaalse aja jooksul - kasutajad ei tunne oodatud tulemusi mitu p\u00e4eva. Postgresi kaudu selliseid t\u00e4htaegu kuidagi ei saavutada - me saime tihti lukustusi ja kuni me t\u00f6\u00f6tlesime k\u00f5iki p\u00e4ringuid, ei saanud kasutajad kontrollida, kas nad said auhindu v\u00f5i mitte. See ei ole \u00e4ri jaoks mugav, seet\u00f5ttu viisime t\u00f6\u00f6tlemise Elasticsearchi.<\/p>\n<h2>Sagedus<\/h2>\n<p>\nPraegu on v\u00e4rskendused seadistatud s\u00fcndmusp\u00f5hiselt j\u00e4rgmiste tingimuste alusel:<\/p>\n<ol>\n<li>M\u00fc\u00fcgikohad. Niikaua kui me saame andmeid v\u00e4listest allikatest, k\u00e4ivitame me kohe v\u00e4rskenduse. <\/li>\n<li>Uudised. Kui veebisaidil redigeeritakse m\u00f5nda uudist, saadetakse see automaatselt Elasticusse.<\/li>\n<\/ol>\n<p>\nSiin tasub veel kord mainida Elasticu eeliseid. Postgres'i puhul tuleb p\u00e4ringu esitamisel oodata, kuni see k\u00f5iki kirjeid \u00f5iglaselt t\u00f6\u00f6tleb. Elasticus saab saata 10 tuhat kirjet ja alustada kohe t\u00f6\u00f6tamist, oodates, kuni kirjed k\u00f5ikide shardide vahel jaotuvad. Muidugi v\u00f5ib m\u00f5ni shardi v\u00f5i koopiamoodul andmeid kohe mitte n\u00e4ha, kuid v\u00e4ga varsti on k\u00f5ik saadaval.<\/p>\n<h2>Integratsiooni viisid<\/h2>\n<p>\nElasticusse integreerimiseks on kaks v\u00f5imalust:<\/p>\n<ol>\n<li>Kasutades natiivset kliendi TCP kaudu. Natiivne draiver on j\u00e4rk-j\u00e4rgult kadumas: seda ei toetata enam, selle s\u00fcntaks on v\u00e4ga ebamugav. Seet\u00f5ttu ei kasuta me seda praktiliselt ja p\u00fc\u00fcame sellest t\u00e4ielikult loobuda.<\/li>\n<li>HTTP liidese kaudu, kus saab kasutada nii JSON p\u00e4ringuid kui ka Lucene s\u00fcntaksit. Viimane on tekstimootor, mida Elastic kasutab. Sellisel juhul saame Batch v\u00f5imaluse kaudu HTTP kaudu JSON-p\u00e4ringute abil. Just seda varianti p\u00fc\u00fcame kasutada.<\/li>\n<\/ol>\n<p>\nT\u00e4nu HTTP liidesele saame kasutada teeke, mis pakuvad as\u00fcnkroonset HTTP kliendi teostust. Me saame kasutada Batch ja as\u00fcnkroonse API eelist, mis l\u00f5puks annab k\u00f5rge tootlikkuse, mis aitas oluliselt suure aktsiooni p\u00e4evadel (sellest allpool)<\/p>\n<p>Veidi numbreid v\u00f5rdlemiseks: <\/p>\n<ul>\n<li>Postgres'is kasutajate, kes said auhindu, salvestamine 20 l\u00f5imes ilma grupeerimisteta: 460713 kirjet 42 sekundi jooksul<\/li>\n<li>Elastic + reaktiivne klient 10 l\u00f5ime + batch 1000 elementi: 596749 kirjet 11 sekundiga<\/li>\n<li>Elastic + reaktiivne klient 10 l\u00f5ime + batch 1000 elementi: <b>23801684 kirjet 4 minuti jooksul<\/b><\/li>\n<\/ul>\n<p>\nPraegu oleme kirjutanud HTTP p\u00e4ringute halduri, mis koostab JSON-i, olgu tegemist Batch'i\/ne Batche'iga ja saadab selle igasuguse HTTP kliendi kaudu s\u00f5ltumata teegist. Samuti saab valida, kas saata p\u00e4ringud s\u00fcnkroonselt v\u00f5i as\u00fcnkroonselt.<\/p>\n<p>M\u00f5nedes integreerimistes kasutame endiselt ametlikku transport klienti, kuid see on vaid k\u00fcsimus l\u00e4hituleviku refaktorimisest. Samuti kasutatakse t\u00f6\u00f6tlemiseks enda klienti, mis on \u00fcles ehitatud Spring WebClienti baasil.<\/p>\n<p><img decoding=\"async\" alt=\"Highload-projekti koormuse optimeerimine ElasticSearch&#039;i abil\" src=\"\/wp-content\/uploads\/2020\/05\/112bf3261c93ce585d8559b420e79f64.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h2>Suur aktsioon<\/h2>\n<p>\nKord iga aastas toimub projektis suur kampaania kasutajatele \u2014 see on see t\u00f5eline Highload, kuna sel ajal t\u00f6\u00f6tame korraga k\u00fcmnete miljonite kasutajatega.<\/p>\n<p>Tavaliselt on koormuse tipud p\u00fchade p\u00e4evadel, kuid see kampaania on hoopis teise taseme. Eelmise aasta kampaaniap\u00e4eval m\u00fc\u00fcsime 27 580 890 toodet. Andmed t\u00f6\u00f6tleti \u00fcle poole tunni, mis tekitas kasutajatele ebamugavust. Kasutajad said osalemise eest auhindu, kuid oli selge, et protsessi tuleb kiirendada. <\/p>\n<p>2019. aasta alguses otsustasime, et vajame ElasticSearchi. Kogu aasta korraldasime saadud andmete t\u00f6\u00f6tlemist Elasticus ja nende v\u00e4ljastamist mobiilirakenduse ja veebisaidi API kaudu. L\u00f5puks j\u00e4rgmise aasta kampaania ajal t\u00f6\u00f6tlesime <b>15 131 783 kirjeid 6 minuti jooksul. <\/b><\/p>\n<p>Kuna soovijaid osta tooteid ja osaleda auhindade loosimistes on meil v\u00e4ga palju, on see ajutine lahendus. Praegu saadame asjakohast teavet Elasticusse, kuid tulevikus plaanime arhiiviandmed eelmiste kuude kohta viia Postgresse, kui p\u00fcsivat ladustamist. Et mitte ummistada Elasticu indeksit, millel on samuti oma piirangud.<\/p>\n<h2>J\u00e4reldus\/\u00fclevaated<\/h2>\n<p>\nPraeguseks oleme viinud Elasticusse k\u00f5ik teenused, mida soovisime, ja oleme sellel hetkel teinud pausi. Praegu ehitame p\u00f5hjaliku p\u00fcsiva ladustamise kohal Postgress Elasticus indeksi, mis talub kasutaja koormust.<\/p>\n<p>Tulevikus plaanime teenuste \u00fcleviimist, kui saame aru, et andmep\u00e4ringud muutuvad liiga mitmekesisteks ja otsitakse piiramatul hulgal veerge. See on juba \u00fclesanne mitte Postgrese jaoks.<\/p>\n<p>Kui meil on vaja t\u00e4isteksti otsingut funktsionaalsuses v\u00f5i kui meil on palju erinevaid otsingukriteeriume, siis teame juba, et see tuleb viia Elasticusse.<\/p>\n<h2>\u2318\u2318\u2318<\/h2>\n<p>\nAit\u00e4h, et lugesite. Kui teie ettev\u00f5ttes kasutatakse samuti ElasticSearchi ja teil on oma rakenduse juhtumeid, siis jagage seda. Huvitav oleks teada, kuidas teised seda teevad \ud83d\ude42<br \/>\n<br \/>Allikas: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/503214\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041f\u0440\u0438\u0432\u0435\u0442, \u0425\u0430\u0431\u0440! \u041c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 \u041c\u0430\u043a\u0441\u0438\u043c \u0412\u0430\u0441\u0438\u043b\u044c\u0435\u0432, \u044f \u0440\u0430\u0431\u043e\u0442\u0430\u044e \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u043e\u043c \u0438 \u043c\u0435\u043d\u0435\u0434\u0436\u0435\u0440\u043e\u043c \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432 \u0432 FINCH. \u0421\u0435\u0433\u043e\u0434\u043d\u044f \u044f \u0445\u043e\u0442\u0435\u043b \u0431\u044b \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u0442\u044c, \u043a\u0430\u043a \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e ElasticSearch, \u043c\u044b \u0441\u043c\u043e\u0433\u043b\u0438 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c 15 \u043c\u043b\u043d \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u0437\u0430 6 \u043c\u0438\u043d\u0443\u0442 \u0438 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0435\u0436\u0435\u0434\u043d\u0435\u0432\u043d\u044b\u0435 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u043d\u0430 \u0441\u0430\u0439\u0442\u0435 \u043e\u0434\u043d\u043e\u0433\u043e \u0438\u0437 \u043d\u0430\u0448\u0438\u0445 \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u0432. \u041a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e, \u043f\u0440\u0438\u0434\u0451\u0442\u0441\u044f \u043e\u0431\u043e\u0439\u0442\u0438\u0441\u044c \u0431\u0435\u0437 \u0438\u043c\u0451\u043d, \u0442\u0430\u043a \u043a\u0430\u043a \u0443 \u043d\u0430\u0441 NDA, \u043d\u0430\u0434\u0435\u0435\u043c\u0441\u044f, \u0447\u0442\u043e [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":82735,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-82734","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041f\u0440\u0438\u0432\u0435\u0442, \u0425\u0430\u0431\u0440! \u041c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 \u041c\u0430\u043a\u0441\u0438\u043c \u0412\u0430\u0441\u0438\u043b\u044c\u0435\u0432, \u044f \u0440\u0430\u0431\u043e\u0442\u0430\u044e \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u043e\u043c \u0438 \u043c\u0435\u043d\u0435\u0434\u0436\u0435\u0440\u043e\u043c \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432 \u0432 FINCH.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/optimizacziya-nagruzki-na-highload-proekte-s-pomoshhyu-elasticsearch\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"et_EE\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u041e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u044f \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u043d\u0430 Highload-\u043f\u0440\u043e\u0435\u043a\u0442\u0435 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e ElasticSearch | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041f\u0440\u0438\u0432\u0435\u0442, \u0425\u0430\u0431\u0440! \u041c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 \u041c\u0430\u043a\u0441\u0438\u043c \u0412\u0430\u0441\u0438\u043b\u044c\u0435\u0432, \u044f \u0440\u0430\u0431\u043e\u0442\u0430\u044e \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u043e\u043c \u0438 \u043c\u0435\u043d\u0435\u0434\u0436\u0435\u0440\u043e\u043c \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432 \u0432 FINCH.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/optimizacziya-nagruzki-na-highload-proekte-s-pomoshhyu-elasticsearch\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-05-24T11:42:22+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-05-24T11:42:22+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47 K\u00f5rge koormuse projekti koormuse optimeerimine ElasticSearchiga | ProHoster","description":"Tere, Habr! Minu nimi on Maksim Vasiljev, olen FINCHis anal\u00fc\u00fctik ja projektijuht.","canonical_url":"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/optimizacziya-nagruzki-na-highload-proekte-s-pomoshhyu-elasticsearch","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"et_EE","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u041e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u044f \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u043d\u0430 Highload-\u043f\u0440\u043e\u0435\u043a\u0442\u0435 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e ElasticSearch | ProHoster","og:description":"\u041f\u0440\u0438\u0432\u0435\u0442, \u0425\u0430\u0431\u0440! \u041c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 \u041c\u0430\u043a\u0441\u0438\u043c \u0412\u0430\u0441\u0438\u043b\u044c\u0435\u0432, \u044f \u0440\u0430\u0431\u043e\u0442\u0430\u044e \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u043e\u043c \u0438 \u043c\u0435\u043d\u0435\u0434\u0436\u0435\u0440\u043e\u043c \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432 \u0432 FINCH.","og:url":"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/optimizacziya-nagruzki-na-highload-proekte-s-pomoshhyu-elasticsearch","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-05-24T11:42:22+00:00","article:modified_time":"2020-05-24T11:42:22+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"82734","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 15:32:25","updated":"2022-09-28 21:13:07","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/82734","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/comments?post=82734"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/82734\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media\/82735"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media?parent=82734"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/categories?post=82734"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/tags?post=82734"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}