Visa ett inlägg
Oläst 2004-09-21, 19:50 #6
knafve knafve är inte uppkopplad
Nykomling
 
Reg.datum: Oct 2003
Inlägg: 42
knafve knafve är inte uppkopplad
Nykomling
 
Reg.datum: Oct 2003
Inlägg: 42
Du skulle ju kunna göra en fet soundex() matchning. Soundex() i MySQL returnerar hur ett ord låter... så ord som låter likadant har samma soundexvärden.

Kod:
SELECT id, kolumn FROM tabellen 
	WHERE	
 *(SOUNDEX(kolumn) = SOUNDEX('sokord')) OR 
 *LEFT(SOUNDEX(kolumn), LENGTH(SOUNDEX(kolumn)) - 1) = LEFT(SOUNDEX('sokord'), LENGTH(SOUNDEX('sokord'))- 1) OR
 *LEFT(SOUNDEX(kolumn), LENGTH(SOUNDEX(kolumn)) - 2) = LEFT(SOUNDEX('sokord'), LENGTH(SOUNDEX('sokord'))- 2)
Det den gör är att den försöker först matcha ord som låter exakt som sökordet. Sedan försöker den matcha ord som börjar på samma sätt fast som avslutas på olika sätt.

Då matchar sökordet "bilar" orden bilar,bilia, bilius och bil men inte orden hus, testar, testarna.
Ordet "sjuk" matchar både sjuk och sjukhus men inte sjukhusen...
Dessutom får du ju då inbyggd rättstavning eftersom felstavade ordet skuk matchar sjuk. :-)

Blir inte direkt exakt vetenskap. Spårar säkert ur om man har 10 000 poster men du kan ju iallafall prova.
Dessutom lär det dra hyffsat mycket CPU-kraft. Man kan iofs ha några hjälpkolumner där man sparar soundexvärden för keyworden så behöver man inte räkna om dem varje gång..

Fast detta är nog inte den bästa lösningen...
knafve är inte uppkopplad   Svara med citatSvara med citat