[MS SQL] Typefouten meenemen in WHERE

Pagina: 1
Acties:

  • SavageNL
  • Registratie: November 2001
  • Laatst online: 01-12 19:20
Ik ben bezig om een internet applicatie te ontwikkelen waar een gebruiker een stukje tekst in kan typen. Uit deze tekst verwijder ik veel voorkomende woorden (ruis) en de andere woorden wil ik opzoeken in een MS SQL 2000 database (ik wil weten welke woorden uit mijn database voorkomen in de tekst).

Nu zag ik dat in T-SQL een COMPARE functie zat die gebruik maakt van het soundex-algoritme. Alleen is dit algoritme phonetisch, dus het is imo niet ontwikkeld voor typefouten. Ik zou liever het Levenshtein-algoritme of iets anders willen gebruiken.

Ik kan me voorstellen dat het netter is om deze logica niet bij de DBMS te leggen, maar het gaat om een prototype om de requirements duidelijk te maken.

ps. In de toekomst wil ik ook vervoegingen (stemming/lemmatisatie) toe gaan voegen aan het programma, is deze logica misschien ook bij de DBMS te leggen?


edit: Ik zit nu te denken. Zou dit in een stored procedure / trigger op te lossen zijn?

[ Voor 5% gewijzigd door SavageNL op 23-02-2007 10:58 ]


  • Annie
  • Registratie: Juni 1999
  • Laatst online: 25-11-2021

Annie

amateur megalomaan

MSSQL heeft standaard niet voldoende functionaliteit in huis om dit te doen. Maar gelukkig is het wel mogelijk om zelf extended stored procedures toe te voegen. Dus als je het algoritme hebt, dan kan je daar een dll van bakken en deze toevoegen aan SQL Server.

Ik heb even gegoogled en kwam de volgende link tegen. Er is dus al iemand aan het hobbyen geslagen. Misschien is dit al voldoende voor wat je nodig hebt.

Overigens zal je met dit soort dingen wel goed op de performance moeten letten.

/edit: als je met MSSQL 2005 kan werken, dan kan je missende functionaliteit nog eenvoudiger toevoegen.

[ Voor 9% gewijzigd door Annie op 25-02-2007 21:44 ]

Today's subliminal thought is:


  • cowgirl
  • Registratie: November 2000
  • Laatst online: 17-12-2020
Kan je niet beter doorbouwen op Full text Search? Bij voorkeur dan op SQL2005, stemming en ruis zitten er in elk geval al in, typefouten volgens mij ook. Je zal misschien even zelf wat moeten klussen aan de language files voor de noise-words e.d.

Full Text Search in MSSQL2005

[ Voor 13% gewijzigd door cowgirl op 25-02-2007 23:35 . Reden: Extra linkje ]


  • SavageNL
  • Registratie: November 2001
  • Laatst online: 01-12 19:20
Full Text Search is een super goede tip, zeker iets om rekening mee te houden. Vooral mooi omdat er rekening is gehouden met het Nederlands (en 22 andere talen) en de woordenlijsten aan te passen zijn. Performance lijkt zo te zien ook geen probleem te zijn. Het enige nadeel is dat er niks wordt verteld over typefouten.

Voor die typefouten denk ik dat ik een stored procedure moet gaan schrijven. Ik zal me daar nog eens wat meer in gaan verdiepen.

Super bedankt!