Hej, varför inte ha en kopia av alla sidorna i databasen? Hej Lars, se nedan: strang = doc.body.innerText: Det finns en enkel metod som man kan säga är standardlösningen för Boolean Search. Ha tre tabeller:Sökfunktion - hur söka igenom alla sidors genererade html-kod på egna webbplatse
Var osäker på var jag skulle lägga denna tråd (om admin kan se var den passar bäst så flytta den gärna).
Jag har byggt en sajt som validerar enligt XHTML 1.0. I bakgrunden har jag använt mig av Asp.net 1.1 med VB och MS Access som databas. Nu är det så att all text på webbplatsen ligger inte i databaser. Det är endast vissa delar som kalendarium mm.
Nu skulle jag vilja ha en sökfunktion på webbplatsen. Den ska finns högst upp på alla sidor och när man trycker på sök ska den söka på användarens sökord i alla sidor på webbplatsen.
Hur får man till en sådan sökfunktion? Jag vet hur man kan skriva sql-satser för att söka igenom tabeller i databasen. Men jag vill ju söka igenom all html-genererad text på webbplatsen (okej, vissa sidor vill jag kunna utesluta, t ex admin-sidorna).
Jag har försökt hitta svar här i forumet och på Google. Inga klara svar på dock vad som är bästa sätt. Jag hittade något om att indexera sidorna med xmlhttp. Skulle helst undvika färdiga grejer. Kan jag själv koda ihop något är det att föredra.
Tack på förhand, alla tips mottages gladeligen!
//mvh BjörnSv: Sökfunktion - hur söka igenom alla sidors genererade html-kod på egna webbpl
Du skulle kunna ha en tabell som är uppbyggd:
ID, sökväg, text
om sidan byggs dynamiskt så får du plocka fram texten typ:
strang = doc.body.innerTextSv:Sökfunktion - hur söka igenom alla sidors genererade html-kod på egna webbpl
Tack för ditt svar!
Men hur gör jag detta på ett smart sätt? Menar du att jag ska plocka in all text på varje sida manuellt och lägga i poster i en databastabell?
Det blir ju jobbigt och lägga in ny text i databasen så fort jag ändrar text någonstans - om jag nu ska göra det manuellt!
Vad är det för språk: "strang = doc.body.innerText"
Du får gärna förklara lite mer utförligt så jag kommer med på banan!
Har du gjort så själv på någon sajt?
mvh BjörnSv: Sökfunktion - hur söka igenom alla sidors genererade html-kod på egna webbpl
|
|
|
\ | /
\ | /
\ | /
\|/Sv: Sökfunktion - hur söka igenom alla sidors genererade html-kod på egna webbpl
är typ en sträng i vb.net som tilldelas en hemsidas text (enl. document object model)
Eftersom du tycks ha sidan på ett ställe som stöder dot.net så kan du ha en webservice som du kallar
med jämna intervall och som "på plats" går igenom sen sist ändrade filer. (Du får lägga till ett senast
sparat fält i tabellen dock)
När du kallar denna webservice, säg dagligen, så scannas för sidan aktuella kataloger igenom.
Om då datum för filen i databasen inte överenstämmer med fil-infot i katalogen, så sparas sidan
in på nytt och även de övriga fälten får uppdateras.
Sen kan du med en searchfunktion på din asp.net-sida mha sql-satser få fram en kollektion av sökvägar till "träffade" sidor ur databasen.
Vet inte om detta är en bra metod dock!Sv:Sökfunktion - hur söka igenom alla sidors genererade html-kod på egna webbpl
Words
-ID
-Text
Pages
-ID
-URL
-LastUpdated
Occurences
-WordID
-PageID
-Count
Så fort en sida tillkommer (eller bara regelbundet) kör du ett skript som uppdaterar Pages och Occurences.
Vid sökning gör du typ (pseudo):
id = sql("SELECT ID FROM Words WHERE Text = " + searchstring);
if(not found)
print("inga poster");
else{
URLS = sql("SELECT URL FROM Pages RIGHT JOIN (SELECT PageID FROM Occurences WHERE WordID = " + id + ") ON Occurences.PageID = Pages.ID" );
print(URLS);
}