Autocomplete input ajax-php-mysql
Hello!
Autocomplete input mezőt szeretnék létrehozni, talán nem szokványos módon. A legtöbb tutorial egyszerű, szó eleji egyezést használ. Viszont én hosszú karakterláncokban is szeretnék keresni. A működési elvvel tisztában vagyok, az sql lekérdezéshez kérnék segítséget.
Alap esetben a LIKE '$kulcs%' megoldás eredményre vezet egy text mezőnél. De olyan mezőben, ahol nem egy szó, hanem több mondat van, nem egy jó megoldás.
Kérdésem: milyen lekérdezéssel lehet a mondatokban lévő szavak elejének egyezését vizsgálni? Ha ez könnyen meg is oldható, érdekelne teljesítmény szempontból is, mert fogalmam sincs mennyire erőforrás pazarló; érdemes ilyenbe gondolkodni?
Innodb táblákról van szó, tranzakció kezeléssel és minden utf8ba van.
■ Autocomplete input mezőt szeretnék létrehozni, talán nem szokványos módon. A legtöbb tutorial egyszerű, szó eleji egyezést használ. Viszont én hosszú karakterláncokban is szeretnék keresni. A működési elvvel tisztában vagyok, az sql lekérdezéshez kérnék segítséget.
Alap esetben a LIKE '$kulcs%' megoldás eredményre vezet egy text mezőnél. De olyan mezőben, ahol nem egy szó, hanem több mondat van, nem egy jó megoldás.
Kérdésem: milyen lekérdezéssel lehet a mondatokban lévő szavak elejének egyezését vizsgálni? Ha ez könnyen meg is oldható, érdekelne teljesítmény szempontból is, mert fogalmam sincs mennyire erőforrás pazarló; érdemes ilyenbe gondolkodni?
Innodb táblákról van szó, tranzakció kezeléssel és minden utf8ba van.
Szótár
Ejjha
szerk.: azt hozzátenném, hogy többnyelvű a honlap, tehát csak azonosítókat tárolok. Ezért minden lekérdezés igazából 2 lekérdezés, mert a nyelvi táblából ki kell venni magát a szöveget. Kicsit erőforrás pazarlónak tűnik nekem első meglátásra. Van valakinek ezzel kapcsolatban tapasztalata?
Nem a szavak vannak rekordonként, ha jól értem.
Ezek után csinálsz egy kapcsoló táblát (azt hiszem így hívják), ami összeköti az adott rekordot a benne található szavakkal.
Ha lesz 500 szöveges rekordod és abban az "alma" szó szerepel majd 1950-szer, attól az "alma" még csak egyszer lesz a szótár táblában!
Mikor keresnek a szöveges tartalmakban, lekérdezed az adott nyelv szótár táblájából a keresett kifejezést, hozzákötöd (JOIN) a kapcsoló táblát és már meg is kaptad az összes olyan szöveges bejegyzés azonosítóját, amiben megtalálható a keresett kifejezés.
Egyébként hozzá fűzhetet a lekérdezéshez egyből a szöveges tartalmak táblát is, így egy lekérdezésben megszereztél minden szükséges adatot!
Aztán még mindig lehet trükközni a keresési módokkal, úgy mint:
A keresési kifejezés egyezik:
- egész szóval (alma)
- szó elején (alma%)
- szó végén (%alma)
- bárhol (%alma%)
Szerintem...
Értem.
A szótárt milyen elv alapján lehetne feltölteni? Írásjelek és töltelékszavak jó lenne, ha nem kerülnének be.
Tartalom törlésnél törölni kell az adott kapcsolatot. Ha a kapcsolatok száma pontosan 1, akkor a szót/kifejezést is törölni kell. Ha jól értem.
egy hosszabb írás
köszönöm:)