N9 wrote:
> Jeg har koblet ASP op til en SQL 2000, med en masser vare over 90000 varenr.
> Mit problem er at hvis jeg søger i f.eks. med wild søgning såsom '%CU%', så
> gå det hele i stå. Resultat er måske 20000 poster er der en måde til at
> optimere sin søgning ??
Hvis du får 20.000 poster, er søgningen jo gået galt alligevel. Der er
vel ingen, der gider at bladre dem allesammen igennem. Du er nødt til at
sikre at brugeren får nogle bedre resultater. Det kan du f. eks. gøre
ved at forhindre brugeren i at fyre søgninger som f. eks. "%s%" af.
> eller skal jeg helt undgå '%%' søgning??
> Jeg har en tabel med knap 300000 poster, der går det helt galt.
> Min tanke er at optimere sql med indexsering eller andet i SQL niveau. Håber
> at en af jer har nogle gode råd eller andet kommentar, al modtages, takker
Du kan indeksere din tabel manuelt, men tror egentlig at det er mere
praktisk at bruge fuldtekstsøgefunktionen, som Jens henviser til. For
eksemplets skyld gennemgår jeg alligevel lige proceduren her:
1. Løb alle dine produkter igennem. For hver række gør dette her:
2. Hiv alle ord ud og put dem i en tabel, så der kun er een forekomst af
hvert ord. Hvert ord skal have et unikt id.
3. Opret en mange til mange-relation imellem forekomsterne af ord og
produkterne (som del af trin 2 ovenfor).
Så har du Produkter <<--->> Ord.
Da der kun kan være én forekomst af hvert ord i indeks-tabellen, bliver
den sandsynligvis ikke så stor. Søgning er så et join imellem Ord- og
Produkter-tabellen.
Eksempel:
Produkter
ID | Beskrivelse
---+--------------
2| Sort egernbudding.
3| Sort computerkabinet.
ProdukterOrd
Produkt | Ord
--------+------
2| 4
2| 5
3| 4
3| 6
Ord
ID | Ord
---+--------
4| sort
5| egernbudding
6| computerkabinet
Mvh. Michael.
--
Which is more dangerous? TV guided missiles or TV guided families?
Visit my home page at
http://michael.zedeler.dk/
Get my vcard at
http://michael.zedeler.dk/vcard.vcf