anoniem Geplaatst: 26 september 2002 Delen Geplaatst: 26 september 2002 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. Quote Link naar reactie
anoniem Geplaatst: 26 september 2002 Auteur Delen Geplaatst: 26 september 2002 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. Quote Link naar reactie
anoniem Geplaatst: 26 september 2002 Auteur Delen Geplaatst: 26 september 2002 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... Quote Link naar reactie
anoniem Geplaatst: 1 oktober 2002 Auteur Delen Geplaatst: 1 oktober 2002 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... Quote Link naar reactie
anoniem Geplaatst: 1 oktober 2002 Auteur Delen Geplaatst: 1 oktober 2002 [quote:374db2d69f="M. Prijs"]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...[/quote:374db2d69f] Ik heb een opmerking ivm je webserver M. Prijs geef ff je mail adres, want dit is niet handig om zo op het forum te posten Quote Link naar reactie
Aanbevolen berichten
Om een reactie te plaatsen, moet je eerst inloggen