Avatar billede heyde Nybegynder
01. januar 2004 - 15:20 Der er 6 kommentarer og
2 løsninger

Idéer til løsning af besværlig site-search

Hej,
Jeg sidder i øjeblikket og arbejder på nogle udvidelser til et site der er lavet i (næsten) ren HTML. Udvidelserne bliver lavet i ASP, med en MS SQL database.

Mit problem er, at der skal laves en søgemaskine, hvor brugeren kan søge efter ord på hele sitet. Både den HTML- og den ASP drevne. Det er jo nemt nok at søge i det ASP drevne, da det ligger i databasen, men hvordan skal jeg samtidig kunne søge i det er er skrevet i HTML-dokumenter?

I øjeblikket hælder jeg lidt til at det tekst man skriver i et HTML dokument også manuelt skal gemmes i databasen, sammen med et link til hvor på sitet det er. På den måde kan man få det med i søgningen.
Er der andre måder der er bedre? Det håber jeg!
Jeg har hørt om noget JavaScript der skulle kunne søge i HTML dokumenter, men har ikke kunnet finde noget brugbart...

Lad os få en lille diskussion kørende...
Avatar billede keysersoze Ekspert
01. januar 2004 - 15:36 #1
Der findes forskellige services man kan køre med - fx mener jeg der er noget der hedder freefind som www.html.dk.

En anden mulighed er, at du vha FSO (FileScriptingObject) læser samtlige HTML-filer igennem og så fx poster et link til de filer hvor søgestrengen har givet resultat.
Avatar billede netro Nybegynder
01. januar 2004 - 18:01 #2
Du kan jo lave noget alá:

Set FSO = Server.CreateObject("Scripting.FileSystemObject")
Set Folder = FSO.GetFolder("c:\sti\til\mappe")
For Each File In Folder.Files
  If InStr(File.ReadAll, Keyword) > 0 Then
      Response.Write "<a href='" & File.Name & "'>" & File.Name & "</a><br>"
  End If
Next
Set Folder = Nothing
Set FSO = Nothing
Avatar billede thesurfer Nybegynder
01. januar 2004 - 18:10 #3
Det virker umiddelbart meget krævende, at åbne alle filerne..
Og hvad hvis man har en mappestruktur..? Så bliver det endnu mere besværeligt..

Man kunne måske løbe filerne igennem, og gemme indholdet i databasen..
Så kan man bruge netros kode, og i stedet for at check efter keyword, kunne man smide indholdet i en variabel, og derefter smide den i databasen..
Det skal så kun gøres 1 gang for hver fil.. Og det vil være nemmere at søge i dine data senere..
Avatar billede keysersoze Ekspert
01. januar 2004 - 18:23 #4
det er klart meget krævende - men mappestruktur gør det ikke umiddelbart mere besværligt vil jeg mene. At lægge indholdet af alle html-filer er selvfølgelig en mulighed, og det vil også gøre det hurtigere hvis der er mange og store filer og der måske skal søge mange gange.
Avatar billede zuiq Nybegynder
01. januar 2004 - 18:41 #5
Det som de store søgerobotter er at søge internettet igennem, og så gemme bestemte ord og sammenhænge fra siderne i en database -og det er dén databaser man så søger på.
Du skulle nok gøre noget af det samme, hvor du gemmer hvilke resultater brugerne får når de søger på dét og dét ord, og gemmer det i en database, og så det går hurtigere næste gang der er en der søger på det samme -eller noget der ligner.

Har aldrig selv prøvet det. Så intet hjælp at hente her :)
Avatar billede netro Nybegynder
01. januar 2004 - 18:48 #6
Hvis der er mappestruktur, skal det laves med en rekursiv funktion. Selvfølgelig vil det altid være lettere at håndtere i en database, men hvis du har et begrænset antal filer, behøver det ikke være SÅ tungt at have med at gøre.
Avatar billede heyde Nybegynder
01. januar 2004 - 19:54 #7
Jeg tror at jeg vil prøve mig frem med Netros løsning. Hvis det viser sig at være for langsomt, kan jeg jo evt. kode en funktion som gemmer teksten i databasen, og som så bare skal køres hver gang man har lavet opdateringer i databasen...

Tak for hjælpen alle sammen, bare fortsæt diskussionen :)
Avatar billede netro Nybegynder
01. januar 2004 - 21:36 #8
Der er vist ikke så meget at diskutere. Det kommer an på, hvad man føler, der dækker ens behov bedst. En database er som sagt at foretrække til søgninger, men i dit tilfælde, vil du sikkert også gerne undgå for meget dobbelt-data.

Tak for points.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester