|
| søgemaskine med flere ord Fra : Henrik Overballe |
Dato : 01-06-01 16:54 |
|
Er der nogen, som ved hvordan man laver en søgemaskine, hvor man kan søge på
flere ord? I de søgemaskiner, som ligger på diverse hjemmesider i
"sourcecode" delen f.eks. Netcoders.dk og Activeserverpages.dk, kan man kun
søge på ét enkelt ord!
Nogen der ka hjælpe?
--
Henrik Overballe - Henno@e-mail.dk
| |
Jakob Andersen (01-06-2001)
| Kommentar Fra : Jakob Andersen |
Dato : 01-06-01 17:06 |
|
"Henrik Overballe" <henno@vibybasket.dk> wrote in message
news:3b17bbd8$0$4203$ba624c82@nntp01.dk.telia.net...
> Er der nogen, som ved hvordan man laver en søgemaskine, hvor man kan søge
på
> flere ord? I de søgemaskiner, som ligger på diverse hjemmesider i
> "sourcecode" delen f.eks. Netcoders.dk og Activeserverpages.dk, kan man
kun
> søge på ét enkelt ord!
Søge er et vidt begreb, hvad er det du ønsker at søge i?
--
Jakob Andersen
FAQ for webdesign gruppen på
< http://www.usenet.dk/oss/dk.edb.internet.webdesign>
"Det er rart at være vigtig, men det er vigtigere at være rar "
| |
Henrik Overballe (01-06-2001)
| Kommentar Fra : Henrik Overballe |
Dato : 01-06-01 17:48 |
|
> Søge er et vidt begreb, hvad er det du ønsker at søge i?
Jeg er ved at opbygge en søgemaskine, www.paintshop.dk/sputte.dk, hvis du er
interesseret i at se den, men hvis man skriver f.eks. 2 eller 3 forskellige
ord, så skriver den bare at der ikk blev fundet noget! Hvis man derimod
søger på hvert enkelt ord, så kommer der mange links frem - hvoraf mange
disse links har de samme 2 eller 3 ord, som identifikation.
Håber du forstår, hva jeg mener
--
Henrik Overballe - Henno@e-mail.dk
| |
Henrik Overballe (01-06-2001)
| Kommentar Fra : Henrik Overballe |
Dato : 01-06-01 18:16 |
|
> Søge er et vidt begreb, hvad er det du ønsker at søge i?
Undskyld, men jeg svarede aldrig på dit spørgsmål Det er en database,
som der skal søges i !
--
Henrik Overballe - Henno@e-mail.dk
| |
Jakob Andersen (01-06-2001)
| Kommentar Fra : Jakob Andersen |
Dato : 01-06-01 19:00 |
|
Jeg går udfra at du bruger noget LIKE i en SQL Statement som denne:
strSQL = "SELECT Felt1, Felt2 FROM tabel WHERE felt1 = noget"
Hvis det er tilfældet kan du jo lave en lille lykke der løber igennem dine
søgeord adskilt med " ".
arrSogeord = Split(Request.Form.Item("SogeFelt"), " ")
For i = 0 to Ubound(arrSogeord)
SQL = SQL & " AND felt1 LIKE '%" & arrSogeord(i) & "%'"
Next
PS: Ovenstående er overhovedet ikke testet.
--
Jakob Andersen
FAQ for webdesign gruppen på
< http://www.usenet.dk/oss/dk.edb.internet.webdesign>
"Det er rart at være vigtig, men det er vigtigere at være rar "
"Henrik Overballe" <henno@vibybasket.dk> wrote in message
news:3b17cefa$0$4208$ba624c82@nntp01.dk.telia.net...
> > Søge er et vidt begreb, hvad er det du ønsker at søge i?
>
> Undskyld, men jeg svarede aldrig på dit spørgsmål Det er en database,
> som der skal søges i !
>
>
> --
> Henrik Overballe - Henno@e-mail.dk
>
>
| |
Jørn Andersen (01-06-2001)
| Kommentar Fra : Jørn Andersen |
Dato : 01-06-01 19:29 |
|
On Fri, 1 Jun 2001 20:00:22 +0200, "Jakob Andersen"
<jakob@andersen.as> wrote:
> SQL = SQL & " AND felt1 LIKE '%" & arrSogeord(i) & "%'"
AND kan evt. erstattes med OR, hvis den skal finde poster, hvor blot
ét af søgeordene matcher
Good luck,
Jørn
--
Jørn Andersen
Brønshøj
| |
Henrik Overballe (01-06-2001)
| Kommentar Fra : Henrik Overballe |
Dato : 01-06-01 19:29 |
|
> strSQL = "SELECT Felt1, Felt2 FROM tabel WHERE felt1 = noget"
Ja!..det gør jeg..altså bruger en lignende SQL streng, men det ser bare ikk
lige ud til at virke
Her er kildekoden, måske du/I ka finde nogle fejl?
arrSogeord = Split(Request.Form("Keyword"), " ")
For i = 0 to Ubound(arrSogeord)
strSQL = "SELECT * FROM links WHERE"
strSQL = strSQL & " (LinkName LIKE '%" & strKeyword & "%')"
strSQL = strSQL & " OR (LinkWord LIKE '%" & strKeyword & "%') ORDER BY
LinkName"
next
--
Henrik Overballe - Henno@e-mail.dk
| |
Jakob Andersen (01-06-2001)
| Kommentar Fra : Jakob Andersen |
Dato : 01-06-01 19:45 |
|
"Henrik Overballe" <henno@vibybasket.dk> wrote in message
news:3b17e047$0$4211$ba624c82@nntp01.dk.telia.net...
> Her er kildekoden, måske du/I ka finde nogle fejl?
Er par stykker
> arrSogeord = Split(Request.Form("Keyword"), " ")
> For i = 0 to Ubound(arrSogeord)
>
> strSQL = "SELECT * FROM links WHERE"
> strSQL = strSQL & " (LinkName LIKE '%" & strKeyword & "%')"
> strSQL = strSQL & " OR (LinkWord LIKE '%" & strKeyword & "%') ORDER BY
> LinkName"
Prøv at udskrive din SQL streng så vil du se at den er gal:
Det skal se sådan her ud:
strSQL = "SELECT * FROM links"
arrSogeord = Split(Request.Form("Keyword"), " ")
For i = 0 to Ubound(arrSogeord)
If i = 0 Then
strSQL = strSQL & " WHERE (LinkName LIKE '%" & arrSogeord(i) &
"%')"
Else
strSQL = strSQL & " OR (LinkWord LIKE '%" & arrSogeord(i) & "%')"
End if
Next
strSQL = strSQL & " ORDER BY LinkName"
Hvilken database bruger du?
--
Jakob Andersen
FAQ for webdesign gruppen på
< http://www.usenet.dk/oss/dk.edb.internet.webdesign>
"Det er rart at være vigtig, men det er vigtigere at være rar "
| |
Henrik Overballe (01-06-2001)
| Kommentar Fra : Henrik Overballe |
Dato : 01-06-01 20:11 |
|
> Hvilken database bruger du?
Jeg bruger MS Access
well, nu returerner den da noget, hvis man skriver to ord - det da
fremskridt!....men den ignorer de efterfølgende ord man skriver!...hvis jeg
f.eks. skriver "århus asp php javascript", så returnerer den det samme, som
hvis der bare stod "århus"!
--
Henrik Overballe - Henno@e-mail.dk
| |
Jakob Andersen (01-06-2001)
| Kommentar Fra : Jakob Andersen |
Dato : 01-06-01 20:42 |
|
"Henrik Overballe" <henno@vibybasket.dk> wrote in message
news:3b17ea13$0$4208$ba624c82@nntp01.dk.telia.net...
> well, nu returerner den da noget, hvis man skriver to ord - det da
> fremskridt!....men den ignorer de efterfølgende ord man skriver!...hvis
jeg
> f.eks. skriver "århus asp php javascript", så returnerer den det samme,
som
> hvis der bare stod "århus"!
Du bruger jo OR og ikke AND, derfor behøves alle ordene ikke være der.
--
Jakob Andersen
FAQ for webdesign gruppen på
< http://www.usenet.dk/oss/dk.edb.internet.webdesign>
"Det er rart at være vigtig, men det er vigtigere at være rar "
| |
Henrik Overballe (01-06-2001)
| Kommentar Fra : Henrik Overballe |
Dato : 01-06-01 23:47 |
|
> Du bruger jo OR og ikke AND, derfor behøves alle ordene ikke være der.
Nu har jeg prøvet med AND istedet for OR, men så virker det som om at den
kun søger på LinkNavn og ikke på LinkWord, som er de reelle ord, som
identificere linket. Der kommer i hvert fald ikk ligeså mange links frem,
som hvis man brugte OR. Det skal der jo helst komme, når man søger på det
samme ord. Hvis du altså forstår mig
--
Henrik Overballe - Henno@e-mail.dk
| |
Jakob Andersen (02-06-2001)
| Kommentar Fra : Jakob Andersen |
Dato : 02-06-01 00:30 |
|
"Henrik Overballe" <henno@vibybasket.dk> wrote in message
news:3b181c81$0$4009$ba624c82@nntp01.dk.telia.net...
> Nu har jeg prøvet med AND istedet for OR, men så virker det som om at den
> kun søger på LinkNavn og ikke på LinkWord, som er de reelle ord, som
> identificere linket.
Hov min fejl jeg havde ikke set at du søgte på to felter.
strSQL = "SELECT * FROM links"
arrSogeord = Split(Request.Form("Keyword"), " ")
For i = 0 to Ubound(arrSogeord)
If i = 0 Then
strSQL = strSQL & " WHERE (LinkName LIKE '%" & arrSogeord(i) &
strSQL = strSQL & " OR (LinkWord LIKE '%" & arrSogeord(i) & "%')"
"%')"
Else
strSQL = strSQL & " OR (LinkName LIKE '%" & arrSogeord(i) & "%')"
'XX
strSQL = strSQL & " OR (LinkWord LIKE '%" & arrSogeord(i) & "%')"
End if
Next
strSQL = strSQL & " ORDER BY LinkName"
--
Jakob Andersen
FAQ for webdesign gruppen på
< http://www.usenet.dk/oss/dk.edb.internet.webdesign>
| |
Henrik Overballe (02-06-2001)
| Kommentar Fra : Henrik Overballe |
Dato : 02-06-01 12:37 |
|
> Hov min fejl jeg havde ikke set at du søgte på to felter.
Mere min fejl, jeg burde nok ha fortalt det
> strSQL = "SELECT * FROM links"
> arrSogeord = Split(Request.Form("Keyword"), " ")
> For i = 0 to Ubound(arrSogeord)
> If i = 0 Then
> strSQL = strSQL & " WHERE (LinkName LIKE '%" & arrSogeord(i) &
"%')"
> strSQL = strSQL & " OR (LinkWord LIKE '%" & arrSogeord(i) & "%')"
>
> Else
> strSQL = strSQL & " OR (LinkName LIKE '%" & arrSogeord(i) & "%')"
> 'XX
> strSQL = strSQL & " OR (LinkWord LIKE '%" & arrSogeord(i) & "%')"
> End if
> Next
>
> strSQL = strSQL & " ORDER BY LinkName"
Men den kode synes jeg nu ikk ser helt fornuftig ud. I hvert fald bliver den
ikk godkendt og jeg får en fejl! Men se også lige en ekstra gang på den IF
sætning (if 1 = 0 then...), for hvis i = 0 så bliver der sagt "WHERE", men
det gør der ikk hvis i <> 0! Måske en fejl der? Men ellers så tager den
stadigvæk kun det første ord, som man skriver i søgefeltet og søger på det!
Så jeg tror at fejlen ligger et helt andet sted i den kode - jeg ved bare
ikk hvor!
--
Henrik Overballe - Henno@e-mail.dk
| |
Jakob Andersen (02-06-2001)
| Kommentar Fra : Jakob Andersen |
Dato : 02-06-01 14:19 |
|
"Henrik Overballe" <henno@vibybasket.dk> wrote in message
news:3b18d115$0$4010$ba624c82@nntp01.dk.telia.net...
> Men den kode synes jeg nu ikk ser helt fornuftig ud. I hvert fald bliver
den
> ikk godkendt og jeg får en fejl!
Du kunne ikke fortælle hvilken fejl?
> Men se også lige en ekstra gang på den IF
> sætning (if 1 = 0 then...), for hvis i = 0 så bliver der sagt "WHERE", men
> det gør der ikk hvis i <> 0! Måske en fejl der?
Nej, where skal jo kun med en gang!
> Men ellers så tager den
> stadigvæk kun det første ord, som man skriver i søgefeltet og søger på
det!
> Så jeg tror at fejlen ligger et helt andet sted i den kode - jeg ved bare
> ikk hvor!
Prøv at udskrive din SQL istedet for at eksekvere den.
--
Jakob Andersen
FAQ for webdesign gruppen på
< http://www.usenet.dk/oss/dk.edb.internet.webdesign>
"Det er rart at være vigtig, men det er vigtigere at være rar "
| |
|
|