Experiment s Azure Cognitive Search

V naších systémoch sme sa rozhodli využiť Azure Cognitive Search (ACS) na fulltextové vyhľadávanie a zložitejšie fitrovanie v dátach. Nejedná sa o statické dáta, ale o štandardné aplikačné dáta ekonomických systémov (faktúry, predfaktúry, cenové ponuky, skladové karty, ...). Očakávame, že ACS bude dokumenty indexovať takmer v reálnom čase.


Toto je sprievodná diskusia k pôvodnej téme na https://blog.vyvojari.dev/ako-nas-ne-limituje-azure-cognitive-search/

Čítam a rozmýšlam nad scenárom. Podľa toho čo simuluješ to vyzerá, že pri 20 dokumentoch za sekundu tam za deň dáš cca 1.7 milióna dokumentov. Ako sa správa indexovanie po cca pol roku keď tam bude 300 miliónov dokumentov?
Ako ja chápem cognitive search, tak je to niečo nad relatívne malo rastúcim stabilným datasetom (napríklad firmy a nejake predpočítavané agregate štatistické výsledky z iných systémov). Tlačiť tam napríklad faktúry by som nepovažoval za dobré rozhodnutie. Na to využite buď CosmosDB, ten ma celkom dobre navrhnutý search a dobrý performance. Alebo Elastic cluster, tým nič nepokazíš a aj 300 dokumentov za sekundu by mal zvládnuť.

Toto zaujima aj mna. Podla toho mala co som sledoval, by mohol byt ACS aj na realtime scenare, obzvlast ked data vacsinou len pribudaju a nemenia sa.
Keep us posted.

CosmosDB je pravdepodobne rozumná voľba. Občas sa o nej rozprávame. Je možné, že tam raz skončíme.
Elastic cluster - tejto možnosti by som sa vyhol pokiaľ nás ACS nejak nelimituje

Nemám to ešte potvrdené (čakám na dáta) ale môj predpoklad je, že priemerný denný prírastok dokumentov bude zhruba 3 000. (dáta, ktoré som simuloval v článku boli odhadované v maximálnej špičke). Takže ročný prírastok by mohol byť: 3 000 x 30 x 12 = 1 080 000 dokumentov.

Každopádne, spravil som ešte jeden scenár.

Test case 4

Vychádzam z prednaplneného ACS v ktorom sa nachádza 4 200 000 dokumentov. (nie je to 300 000 000, ale vzhľadom na naše požiadavky by to malo stačiť). Mám dve partície (pretože limit na partíciu je 25GB a môj index má 29GB), ostatné parametre sú rovnaké ako v scenári 1.

Výsledky sú také, že v 99% iterácií nedošlo k rozdielu medzi očakávaným počtom dokumentov a počtom reálne zaindexovaných dokumentov.


Azure Search sme sa rozhodli použiť pre jeho z našej strany jednoduchosť. Zatiaľ to vyzerá, že v našich scenároch na jeho limity indexovania nenarazíme. Ak na niečo narazíme tak dám určite vedieť.

1 Like