Toon posts:

[MS SQL Server 2000] Zoekfunctie; negeren speciale tekens

Pagina: 1
Acties:
  • 165 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Hello,

Ben lang wezen zoeken hier op GoT en google, maar heb nog geen passend antwoord gevonden op mijn volgende probleem:

Ik heb een MS Sql server database met een hele rits artiestnamen. Een bezoeker moet met behulp van een zoekfunctie de juiste artiestnaam kunnen achterhalen.

Het probleem zit hem in speciale tekens. Sommige artiestnamen zijn bijvoorbeeld Ĝotte of Ÿbrand. Wanneer iemand op deze mensen zoekt, zal hij waarschijnlijk Gotte resp. Ybrand gebruiken ipv de namen met speciale tekens.

Wanneer ik in mijn standaard zoekfunctie zoek naar Ĝotte met het keyword Gotte, dan worden er geen records teruggegeven!

Ik heb vernomen dat je in MS SQL Server een dergelijk probleem kan voorkomen door in de WHILE clause de CONTAINS functie te gebruiken. Heeft iemand enig idee hoe ik een dergelijke query op moet zetten?

Alvast bedankt!

  • whoami
  • Registratie: December 2000
  • Laatst online: 17:38
Je moet eens zoeken in de Books Online op FREETEXT en / of CONTAINS

Je zult wel de Full Text Search / Indexing Service van MS SQL Server moeten installeren (voor zover dat nog niet gebeurd is), en die service enablen op de tabellen waarop je dergelijke zoekopdrachten wilt uitvoeren.

https://fgheysels.github.io/


  • OZ-Gump
  • Registratie: November 2002
  • Laatst online: 26-06 10:37

OZ-Gump

terug van weggeweest

In een dergelijk geval zou ik in mijn zoekstring alle aparte characters verwijderen, of vervangen door een *. Vervolgens kun je volgens mij met een LIKE statement een heel eind in de buurt van de goeie naam komen.

Je kunt natuurlijk ook standaard zoeken op wat is ingegeven en als dat niets retourneert, ga je checken op speciale tekens. Anders ben je altijd je zoekstring aan het parsen, terwijl je in het laatste geval alleen aparte dingen gaat doen als je geen antwoord krijgt.

My personal website


Verwijderd

Topicstarter
to oz-gump:

Een collega van mij heeft idd een dergelijke functie geschreven. Maar het is ntl netter om het via de database te doen....

Ik heb btw full-text indexing geinstalleerd, maarre...

[lame]
online books? waar kan ik dat vinden?
[/lame]

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

Verwijderd schreef op 29 October 2003 @ 13:31:
[lame]
online books? waar kan ik dat vinden?
[/lame]
Start > All Programs > Microsoft SQL Server > Books Online

Digitaal onderwijsmateriaal, leermateriaal voor hbo


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

Annie

amateur megalomaan

Mocht je de fulltextsearch niet willen gebruiken dan is, afaik, de collation van je database (cq. column) van invloed. Als je een AS collation gebruikt (bijv. SQL_Latin1_General_CP1_CI_AS) is deze accent-sensitive. Wijzigen naar een AI collation en daar je data invoeren zal je probleem waarschijnlijk dus ook oplossen (niet getest overigens).

Today's subliminal thought is:

Pagina: 1