Mi a leggyorsabb módja substring -ek keresésének?
Van egy millió nagyságú adatom, mindegyik String.
A feladat az lenne hogy live search-t alkalmazzak ezekre.
Az egyszerűség kedvéért:
Például van rengeteg filmcímem (String, adat), és lenne egy kereső (input), ahova beírva szöveget, megjelennének azok a filmcímek valahol amik valamely substringje egyezik a keresőbe beírt szöveggel.
A kérdés az lenne, hogy milyen módon tudnám a leggyorsabb keresést elérni?
Tehát egyrészt hol tároljam ezeket a Stringeket (adatbázis (ha ez milyen fajta?), JSON, stb...), és milyen módszer(ek)kel keressek.
Prog nyelv: PHP, JS
A kérdésemre köszönöm a válaszokat előre is!
A kérdés, hogy pontosan hogyan kellene működnie a keresésnek. stringek elejétől keresel, a stringekben bárhol keresel, egybefüggő substringet ekresel, vagy esetleg szavanként keresel.
Egyébként bármelyik SQL adatbázis értelmes időn belül képes elvégezni egy ilyen keresést, de lévén, hogy mind elölről, mind hátulról wildcardos a keresésed, nem nagyon tud indexelést használni, szóval annyira gyors nem lesz.
stringekben bárhol tudnék keresni, és igen emiatt nem lenne értelmes az index, esetleg csinálhatnám úgy hogy feltételezzük hogy string elején keresek és akkor index-el gyors, másodsorban pedig stringekben és akkor lassú.
De nincs erre valami jobb módszer?
Hogyan csinálja például egy IMDB, hogy pár másodperc alatt már van több találat?
Nincs valami adatstruktúra ami gyorsabbá teszi? Vagy adatbázis keresésnél (+indexek-nél) nem tudok jobbat akkor?
Értem.
Ha mondjuk úgy működne a kereső hogy az adatbázisban lenne külön szótábla (ezzel jócskán megnövelve az adatbázis méretét, de itt lehet indexet használni) , és a kereső a szóközzel elválasztott szavak alapján keresne először a szótáblából, majd pedig vennénk azokat a címeket ahol a szavak jelen lennének (a szótábla és a filmcímek között lenne kapcsolat), akkor meg lehetne gyorsítani a keresést a tárigény kárára?
Vagy felesleges ilyennel foglalkozni?
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!