webForumDet fria alternativet

Avancerad sökning

Databaser & SQLur Databashanterare & SQL

7 svar · 336 visningar · startad av Glitter

GlitterMedlem sedan juli 2003465 inlägg
#1

Hej

Jag skall bygga ett söksystem som man kan bygga en "rättstavning" så som google man skall kunna söka på enskilda ord som ingår i texten i tabellens alla columner.
Och helst skall man kunna söka på delar av ord också.

Jag undrar vad som går snabbast/minst belastar en server:

1. Man har en Tabell:
id
col1
col2
col3
col4
och man kör "like" på frågan och gämför med alla columner.

2. Man har 2 tabeller.
Tabell 1:
id
ord
refid

Tabell 2:
id
col1
col2
col3
col4

"Tabell 1"s ord är alla ord som finns i col1,2,3,4 i tabell 2
Refid är "tabell 2"s id.

3. Man har en Tabell:
id
col1
Col 1 inhehåller alla data från alla columner.

Vad är den ultimata lösningen?
Tar gärna imot andra lösningar än de jag har skrivigt upp om de är bättre.

Använder MS SQL 2000 och Asp.Net och jag kan inte använda full-text indexering för mitt webhotell stödjer det inte.

Jag kanske är ute och cyklar för det kanske finns e jätte enkel lösning som inte har slagit mig.

Tacksam för svar.

GlitterMedlem sedan juli 2003465 inlägg
#2

*bump*
Ingen som vet?

aasahMedlem sedan mars 20034 471 inlägg
#3

Alltså, frågeställningen verkar lite skum i mina ögon. Hur du bygger din(a) tabell(er) har med strukturen på vad du vill lagra att göra. Vad ska lagras? Vad finns i dina col1-4?

GlitterMedlem sedan juli 2003465 inlägg
#4

Jag skall lagra adresser telefonnummer m.m det blir la i slutändan 30 coumner om man skall lägga in alt på ett bra sätt i databasen.

Men det jag är ute efter är prestanda själva databas upplägget i sig har inte så stor betydelse men visst är det bättre om det ser bra ut.

Det som är kruxet är ju att om man skall lagra massa data och göra en "dynamisk" sköning med "like" så blir det fruktansvärt segt.

Det kommer att ske en sökning från ett inputfält och det skall delas upp och kollas med det data som är relevant.

GlitterMedlem sedan juli 2003465 inlägg
#5

Ingen som har något bra tips?

mozillaMedlem sedan juli 20011 084 inlägg
#6

hmm, en databas är till för att lagra data. Jag tror inte du vinner i längden på att ha en dålig databasdesign. Utan använd databasen som den är tänkt att användas. Exakt hur det ska se ut i ditt fall är jag inte så insatt i. :)

GlitterMedlem sedan juli 2003465 inlägg
#7

Jo visst känns det som det bästa...
Isåfall hur skall jag göra min sökning på bästa sätt?
Jag har 1 alt. 2 sökfält som man skall kunna söka med.
Hur skall man på ett bra sätt ställa en sql fråga som inte kräver för mycket. För den skall ju kolla med alla fält om det överensstämmer och inte hela ord då utan delar av ord.

GlitterMedlem sedan juli 2003465 inlägg
#8

Jag började på ett sätt:
Jag lade ihop alla columner med mellanrum imellan.

Splittade på mellanrum

la in orden/siffrorna i en tabell med ett refid till den raden där informationen ligger i den första tabellen

Om jag fick upp ordet 2 gånger och la jag bara till ett till refid i tabellen.

Detta funkade jätte bra förutom att det tar ungefär 2-3 månader att "indexera" 600 000 poster.
Det är ju inte så bra plus att det belastar som fan på servern som redan är seg.
och det känns som det blir krångligt att uppdatera information i den första tabellen och i ord refereringstabellen.

Så är det någon som har något bra tips?

130 ms totalt · 3 externa anrop · v20260731065814-full.29ac60f6
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)