Týždeň 2023-06

Minulý týždeň sme sa dočkali buď revolúcie, alebo predstavenia ďalšieho zbytočného trendu na tento rok. Poďme ale pekne postupne vysvetliť, čo sa stalo.


Toto je sprievodná diskusia k pôvodnej téme na https://blog.vyvojari.dev/vlko-week-2023-06/

Bing zásnuby s ChatGPT

To vyzera naozaj zaujimavo. Ak sa im fakt podari pridat to, ze s ChatGPT budu pri vyhladavani vypadavat linky na zdroje. Tak to povazujem za game changer (bez toho je to len kecalek).

Priznám sa, že osobne som spread operátor (…) ešte nezačal používať, ale keďže ho podporujú aktuálne všetky prehliadače, tak by som mal začať.

Ja som ho pouzil iba ked som sa ucil React, lebo tam sa bez vsadepritomneho kopirovania objektov a poli neda zaobist. Inac som ho tiez moc nevyuzil.

Meilisearch je nový open-source search engine, ktorý by mal konkurovať Elasticsearch. Je napísaný v Rust, a teda logicky bude mať pod sebou niečo iné ako Lucene.

Urcite sa nan pozriem.

Ja si uz dlhsie hovorim, ze pre dotnet by sa zisla nejaka nova kniznica pre fulltext vyhladavanie. Lucene.Net je uz niekolko rokov v takom divnom stave, lebo na netstandard/.Net je portovany len ciatocne a plno veci tam stale nefunguje.

Proste chleo by to nejaku lahku a modularnu fulltext serach kniznicu (zeby inspiracia na novy projekt?).

Lucene.Net je špeciálny príbeh. Kedysi ho forkli z Java Lucene a ten bol dosť odvtedy prepísaný, ale keďže .Net fork nebol 1:1, tak sa dostal do stavu, že mal dve možnosti, pokračovať, alebo urobiť nový fork. Nakoniec sa rozhodli pre prvú možnosť a dnes to má prakticky len jedného contributora.
Inak je to celkom stabilná knižnica, takže na väčšinu fulltext scenárov by mala stačiť.

Väčšina týchto fulltext enginov sa dnes už píše v ruste, ale napríklad RavenDB si vyvíja vlastný Corax
ravendb/src/Corax at v5.4 · ravendb/ravendb · GitHub

Hej viem o historii Lucene.

Ta povodna pre plny net urcite hej, ta sucasna (myslim, ze je uz x rokov prerelase) tak tam napriklad nefunguje facetove vyhladavanie tak ako by malo. Skusal som ju pouzit ako mini databazu na jeden maly projekt, kde som potreboval aj fulltext, zial narazil som (aj kvoli nefungujucim veciam, aj kvoli chybajucej dokumentacii alebo prikladom na nete).

O Coraxe viem, no jeho licencia asi nie je pre bezne pouzitie a cital som vyjadrenia, ze s neho neplanuju spravit knizncu pre vseobecne pouzitie.

Inac vo Finstate ste uz skusali ravenDB na Coraxe?

Corax sme pozerali (na BuildStuff konferencii o tom na pive aj diskutovali s Ayende a chalanmi z teamu) a zatiaľ to nie je v stave, aby sme na tom rozbehali všetky naše veci. To bolo pred 3 mesiacmi, tak čakáme na nejaký stabilnejší release. Na finstate ale zatiaľ nemáme dôvod niečo meniť, skorej EU projekt HitHorizons by to mohol využiť.

Väčšina týchto fulltext enginov sa dnes už píše v ruste

Ja si prave myslim, ze “nove” featury C# by boli na to ako stvorene ako Spany, stackalloc, atd…

To bolo pred 3 mesiacmi, tak čakáme na nejaký stabilnejší release. Na finstate ale zatiaľ nemáme dôvod niečo meniť, skorej EU projekt HitHorizons by to mohol využiť.

Ja som ho skusal, hned ako vysiel. na standardne vyhladavanie fungoval, no potreboval som dynamicke indexy a tie vtedy nepodporoval. Po case sa k nemu urcite vratim.

No zaujima ma hlavne, ci ste s im nerobili nejake vykonnostne porovnania.

Corex vznikol hlavne preto, aby dosiahli vyssiu vykonnost ako indexovania, tak search. Interne je ten navrh iny ako ma Lucene, spoliehaju sa dost na kompresiu dat, ale zatial to vyzera, ze bud dosiahnu tu istu performance a budu moct pridavat dalsie feature, ale urcite aj lepsiu.

1 Like

Nemali by sa v dnesnej dobe skor ako kniznice pouzivat nastroje, ktore komunikuju cez napr HTTP API?

Nemyslim. Ked aj okolo kniznice ide vystavat API lahko. Naopak uz potrebujes externu sluzbu.

Navyse use cases co mam tak by sa mi to hodilo prave ako kniznica, aby som nemusel tahat do infrastruktury externu zavislot (napriklad som si robil suborove DMS-ko).