prplxrMedlem sedan juni 2012582 inlägg Jag har en tabell i en MySQL-databas med allehanda företag som jag vill söka i. Sökningen görs på företagsnamn eller bransch företaget tillhör (fält i samma tabell) och (ifall geografisk sökterm angivits) i vilken stad ELLER i vilket län företaget finns.
Jag vet att jag inte sorterar mina resultat efter relevans nu. Det är ett medvetet val då tabellen har så ***** många poster och servern blir ledsen om jag gör det.
Det här är min fråga jag har just nu:
$sql = "SELECT * FROM tblforetag ";
$sql.= "WHERE (MATCH(tblforetag.foretag) AGAINST(:keywords IN BOOLEAN MODE) ";
$sql.= "OR MATCH(tblforetag.bransch) AGAINST(:keywords IN BOOLEAN MODE)) ";
if($locisset) $sql.= "AND (MATCH(tblforetag.lan) AGAINST(:location IN BOOLEAN MODE) ";
if($locisset) $sql.= "OR MATCH(tblforetag.stad) AGAINST(:location IN BOOLEAN MODE)) ";
$sql.= "ORDER BY premium DESC ";
$sql.= "LIMIT $offset, $rpp ";
Gör jag nu en sökning med termen "frisörer" utan geografisk sökterm får jag 17.387 resultat. Gör jag en sökning med termen "frisör" får jag bara 748 resultat. Jag förstår att det är för att den inte matchar tblforetag.bransch längre, men varför blir det såhär?
prplxrMedlem sedan juni 2012582 inlägg Frågan verkar stämma. Felet låg i hur jag räknade ut antalet resultat. Tyvärr inser jag nu att MySQL förmodligen inte kommer kunna lösa pucken för mig ändå pga prestandaproblem.
LaspMedlem sedan juli 200012 980 inlägg Det måste ju gå att finna en snabb lösning på detta.
Om db är statisk så skapar du ju ett nyckelregister.
prplxrMedlem sedan juni 2012582 inlägg Det är totalt orimligt att byta databas i det här skedet i projektet så jag har fått upp ögonen lite för Lucene. Någon som använt detta med goda resultat? Hur mycket skiljer det verkligen i prestanda? Hur mycket är det att sätta sig in i?
LaspMedlem sedan juli 200012 980 inlägg Jag menade inte heller att du skulle byta db, Skapa en tabell med bra nycklar, kör uppdatering av de statiska värdena periodiskt!
Hur många poster har du?
prplxrMedlem sedan juni 2012582 inlägg Bortåt två miljoner. Grejen är den att keywords och liknande ofta kommer ändras och hur jag än vrider och vänder på det så ser jag stora flaskhalsar.
Hur menar du "skapa en tabell med bra nycklar"?
LaspMedlem sedan juli 200012 980 inlägg Det är ju alltid svårt att ge tips när det gäller slika tillämpningar och man inte har alla förutsättning klart för sig.
Jag förutsätter att du kan databaser bra, så utan exempel är det svårt att råda!
En nyckel som LKF skulle ju ta de två sista sökningarna i ett nafs!
Man skulle ju också kunna ha översättning mellan sökbegreppet branch och branschkod!