Vraag & Antwoord

Webprogrammeren & scripting

[ASP] Zoekfunctie: ordenen op relevantie

4 antwoorden
  • Ik ben bezig met een zoekfunctie voor mijn internetpagina: http://62.251.28.184/test Als een gebruiker een bepaalde string invoert om te gaan zoeken, wordt die string opgesplitst in woorden en wordt er op alle woorden (AND) gezocht in de (access) database. Het volgende is mijn probleem: Hoe kan ik de resultaten ordenen, zodat het resultaat dat het meest overeenkomt het eerst wordt getoond en zo verder? Om het geheel wat te verduidelijken volgt hieronder een stukje script: Dim searchwordsarray searchwordsarray=Split(Trim(searchval)," ") x=0 sql="select * from scripts where approved='YES' and (scriptname like '%"& searchwordsarray(0) &"%' " For x=1 to UBound(searchwordsarray) sql=sql & "and scriptname like '%"& searchwordsarray(x) &"%' " x=x+1 Next x=0 sql=sql & "or description like '%"& searchwordsarray(0) &"%' " For x=1 to UBound(searchwordsarray) sql=sql & "and description like '%"& searchwordsarray(x) &"%' " x=x+1 Next sql=sql & "or author like '%"& searchval &"%')" Ik hoop dat iemand het weet, want op aspin.com en hotscripts kon ik ook al niks vinden. Mvg, Mark.
  • Ik snap het niet precies, want de enige resultaten die eruit komen zijn MET a EN b EN c dus zowiezo al weinig... Jij bent de enige die weet wat de relevantie van een bepaald artikel is. Misschien kun je een veld in de tabel erbij doen met een relevantiewaarde, misschien een optelsom doen met alle sleutelwoorden, en dan daarop sorteren in een uitgebreidere query.
  • Nee, dat bedoel ik niet. Ik bedoel in hoeverre de zoekterm overeenkomt met de gevonden records. Een woord in de zoekterm kan bijvoorbeeld 3x voorkomen in een record, die wil ik dan eerst tonen en daarna de records waarin het woord maar 2 of 1 keer voorkomt...
  • Stukkie code: [code:1:72ffcbc13d] For intIndexPosition = 1 To (intTotalFilesFound - intPassNumber) 'Place the Result being sorted in a temporary variable intTempResultsHold = sarySearchResults(intIndexPosition,1) 'Place the Number of Matches for the result being sorted in a temporary variable intTempNumMatchesHold = sarySearchResults(intIndexPosition,2) [/code:1:72ffcbc13d] Ik hoop dat je daar wat mee kan... De variable die worden genoemt, kan je zelf wel veranderen denk ik, ze hebben een logische naam...

Beantwoord deze vraag

Weet jij het antwoord op deze vraag? Registreer of meld je aan met je account

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.