Elasticsearch - deep paging

Elasticsearch - deep paging
« kdy: 21. 01. 2016, 19:17:46 »
Hello
Mám v php dve triedy na vyhľadávanie v trošku komplexných dátach (nie moc) - jedna trieda hľadá v mysql, druhá v elasticsearch. Výsledky produkujú rovnaké, okrem fulltextového vyhľadávania. Ide cca do 200 000 záznamov. Každý záznam môže mať asi do 15kB dát, z toho jeden fulltext, nejaké integery a floaty. Vo výsledku reálneho vyhľadávania môže byť asi do 15 tisíc-30 tisíc riadkov.
Dostal som sa k tomu, že v elasticsearch bude problém pri vyšších číslach stránok.
Čo by ste spravili vy - zakázali stránky vyššie než je limit, zvýšili limit alebo pri hlbších stránkach použili tú druhú, pomalšiu databázovú triedu? Ja by som do toho zvýšenia limitu išiel, ale varovanie na tej stránke v rámčeku "Deep Paging in Distributed Systems" ma trochu vystrašilo :D
« Poslední změna: 21. 01. 2016, 20:22:21 od Roman Bořánek »


karel

Re:elasticsearch - deep paging
« Odpověď #1 kdy: 21. 01. 2016, 19:51:26 »
Zakázal,
a proč protože pokud někdo hledá v 200k záznamech a specifikuje parametry tak, že jeho dotazu odpovídá výsledek o 30k tak blbě hledá. Cílem hledání a následného řazení je přeci dostat se k co nejrychleji k relevantním datům a ne data na stránce 3000, jen než tam přes next doskáče je doba  :D


Re:elasticsearch - deep paging
« Odpověď #2 kdy: 21. 01. 2016, 20:23:25 »
doteraz som si nevšimol, že ani google nedá viac ako 40 strán výsledkov, napríklad https://www.google.sk/#q=dsl&start=340

Re:elasticsearch - deep paging
« Odpověď #3 kdy: 21. 01. 2016, 20:27:13 »
Pokud někdo potřebuje desítky tisíc řádků, aby s nimi dále pracoval (třeba z nich bude dělat nějakou statistiku), nebude chtít stránkovat, ale vyexportovat dat v nějakém strojově zpracovatelném formátu (třeba CSV) – a určitě bude ochoten si na výsledek exportu nějakou dobu počkat. Pokud by s těmi daty pracoval pořád stejným způsobem, bude nejradši, pokud mu to zpracování doplníte rovnou do aplikace a on už dostane výsledek.

Pokud by někdo ty desítky tisíc záznamů potřeboval vidět proto, aby v nich něco hledal očima, je na vyhledávání něco špatně – buď vy neumožňujete zadat potřebná kritéria, nebo to uživatel neumí. Takže stránky přes limit bych zakázal, pro uživatele můžete v takovém okamžiku nejvíc udělat tím, že mu nabídnete relevantní možnosti, jak může svůj dotaz upřesnit.

Re:Elasticsearch - deep paging
« Odpověď #4 kdy: 21. 01. 2016, 20:35:59 »
Všetky možnosti na filtrovanie sú, a myslím že dostatočné. Kedysi sme mali paginator s možnosťou ísť na poslednú stranu a to niektorí (vrátane mňa) používali namiesto opačného sortovania. Teraz na tie hlboké čísla chodí zrejme hlavne google... Tak víťaz hlasovania je teda jasný :) Ďakujem