/ Forside/ Teknologi / Udvikling / SQL / Spørgsmål
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
SQL
#NavnPoint
pmbruun 1704
niller 962
fehaar 730
Interkril.. 701
ellebye 510
pawel 510
rpje 405
pete 350
gibson 320
10  smorch 260
Search engine?
Fra : konsulenten
Vist : 812 gange
200 point
Dato : 25-06-01 10:55

Hej alle sammen,

Jeg har lavet en search engine som søger på indekserede ord i MS SQL. Det køre også temmelig godt, bortset fra at min søgning tager for lang tid.

TABEL :

Word varchar(50) (index)
Url varchar(1024)

Når jeg søger efter et enkelt ord så tager det ca. 2 sek, men når jeg så søger efter 2 ord, tager søgningen helt op til 30 sekunder (IKKE SÅ GODT!), og 3 ord så går det helt i kage. Det er som om, MS SQL server ikke laver indeks på temporere tabeller, eller den ignore mine indekser, så jeg ved ikke om det er en option som skal sættes op i SQL Server.

Er der nogen af jer som kender til problemet? Eller kender et sted hvor jeg kan finde informationer om måden at bygge en search engine? Når jeg kigger på www.google.com, og ser deres tider, er det mig en gåde, for så langt ned kan jeg ikke engang komme bare med søgning af et ord.

Konsulenten

 
 
Kommentar
Fra : Nyhedsbruger


Dato : 25-06-01 13:05


"konsulenten" <konsulenten.news@kandu.dk> wrote in message
news:T_CZ6.2047$lf5.391384@news010.worldonline.dk...
> Hej alle sammen,
>
> Jeg har lavet en search engine som søger på indekserede ord i MS SQL.
> Det køre også temmelig godt, bortset fra at min søgning tager for lang
> tid.
>
> TABEL :
>
> Word varchar(50) (index)
> Url varchar(1024)
>
> Når jeg søger efter et enkelt ord så tager det ca. 2 sek, men når jeg så
> søger efter 2 ord, tager søgningen helt op til 30 sekunder (IKKE SÅ
> GODT!), og 3 ord så går det helt i kage. Det er som om, MS SQL server
> ikke laver indeks på temporere tabeller, eller den ignore mine indekser,
> så jeg ved ikke om det er en option som skal sættes op i SQL Server.

Det lyder lidt som om du laver en søgning og indsætter resultatet i en
temporer tabel og derefter søger i den, hvis der er flere søge ord, og så
fremdeles ? Hvis det er korrekt så er det egentligt ikke så underligt
hvorfor din SQL Server er ved at gå kold. Prøv at tænke på den mængde data
som du flytter rundt på den måde (intern båndbrede). Under forudsætning af
at jeg har gættet rigtgit så har du ikke så mange muligheder andet end at
komme op med et nyt design - for det der kommer aldrig ud over stepperne.

Hvis det skal baseres på SQL Server (eller en anden DBMS) så skal du finde
en måde at søge i nogle realiserede (permanente) tabeller. Og udgangspunkt
skal du ikke være så bange for hvormeget dine data fylder med indeks, men
prøv at se på query planen for dine forespørgsler og så hvor den er gal.

Skriv eventuelt noget med om hvordan det er organiseret og hvad det er man
skal kunne søge på.

>
> Er der nogen af jer som kender til problemet? Eller kender et sted hvor
> jeg kan finde informationer om måden at bygge en search engine? Når jeg
> kigger på www.google.com, og ser deres tider, er det mig en gåde, for så
> langt ned kan jeg ikke engang komme bare med søgning af et ord.
>

Du må endelig ikke sammenligne en løsning baseret på MS SQL Server med hvad
der foregår hos Google - de har en dedikeret server (ja ok der er fysisk
flere) specielt til formålet. Prøv at kigge her
http://www.google.com/technology/index.html der står lidt om hvordan det
fungere.



> Konsulenten
>
> --
> Leveret af:
> http://www.kandu.dk/
> "Vejen til en hurtig løsning"
>



Kommentar
Fra : konsulenten


Dato : 25-06-01 14:51

Hej James,
Tak for dit lange svar, og jeg kan godt se, mit indlæg manglede nogle informationer, så vi prøver lige igen :

Først mine tabeller :

Tabel words - word varchar(50), wid number;
Tabel wordmap - wid number, pnr number;
Tabel Urls - pnr number, url varchar(500);

Herefter en søgning
Find den side hvor KURT NIELSEN står:

select u.url from
urls u
,(select pnr
from words w
,wordmap m
where w.wid = m.wid and word like 'KURT%') x1
,(select pnr
from words w
,wordmap m
where w.wid = m.wid and word like 'NIELSEN%') x2
where x1.pnr = x2.pnr and u.pnr = x1.pnr;


Hvis x1 fyres af alene tager det under 1 sek.
Hvis x2 fyres af alene tager det under 1 sek.
Men i den sammensatte form er det op til 30 sec.


"James Olsen" skrev d. 25-06-01 13:05 dette indlæg :
>
> "konsulenten" <konsulenten.news@kandu.dk> wrote in message
> news:T_CZ6.2047$lf5.391384@news010.worldonline.dk...
> > Hej alle sammen,
> >
> > Jeg har lavet en search engine som søger på indekserede ord i MS SQL.
> > Det køre også temmelig godt, bortset fra at min søgning tager for lang
> > tid.
> >
> > TABEL :
> >
> > Word varchar(50) (index)
> > Url varchar(1024)
> >
> > Når jeg søger efter et enkelt ord så tager det ca. 2 sek, men når jeg så
> > søger efter 2 ord, tager søgningen helt op til 30 sekunder (IKKE SÅ
> > GODT!), og 3 ord så går det helt i kage. Det er som om, MS SQL server
> > ikke laver indeks på temporere tabeller, eller den ignore mine indekser,
> > så jeg ved ikke om det er en option som skal sættes op i SQL Server.
>
> Det lyder lidt som om du laver en søgning og indsætter resultatet i en
> temporer tabel og derefter søger i den, hvis der er flere søge ord, og så
> fremdeles ? Hvis det er korrekt så er det egentligt ikke så underligt
> hvorfor din SQL Server er ved at gå kold. Prøv at tænke på den mængde data
> som du flytter rundt på den måde (intern båndbrede). Under forudsætning af
> at jeg har gættet rigtgit så har du ikke så mange muligheder andet end at
> komme op med et nyt design - for det der kommer aldrig ud over stepperne.
>
> Hvis det skal baseres på SQL Server (eller en anden DBMS) så skal du finde
> en måde at søge i nogle realiserede (permanente) tabeller. Og udgangspunkt
> skal du ikke være så bange for hvormeget dine data fylder med indeks, men
> prøv at se på query planen for dine forespørgsler og så hvor den er gal.
>
> Skriv eventuelt noget med om hvordan det er organiseret og hvad det er man
> skal kunne søge på.
>
> >
> > Er der nogen af jer som kender til problemet? Eller kender et sted hvor
> > jeg kan finde informationer om måden at bygge en search engine? Når jeg
> > kigger på www.google.com, og ser deres tider, er det mig en gåde, for så
> > langt ned kan jeg ikke engang komme bare med søgning af et ord.
> >
>
> Du må endelig ikke sammenligne en løsning baseret på MS SQL Server med hvad
> der foregår hos Google - de har en dedikeret server (ja ok der er fysisk
> flere) specielt til formålet. Prøv at kigge her
> http://www.google.com/technology/index.html der står lidt om hvordan det
> fungere.
>
>
>
> > Konsulenten
> >
> > --
> > Leveret af:
> > http://www.kandu.dk/
> > "Vejen til en hurtig løsning"
> >
>
>

Kommentar
Fra : Nyhedsbruger


Dato : 25-06-01 14:29

In article <T_CZ6.2047$lf5.391384@news010.worldonline.dk>, "konsulenten"
<konsulenten.news@kandu.dk> wrote:

> Jeg har lavet en search engine som søger på indekserede ord i MS SQL.
> Det køre også temmelig godt, bortset fra at min søgning tager for lang
> tid.

Glimpse er i den forbindelse umådeligt hurtigt, men har selvfølgelig ikke
helt samme fleksibilitet som et dbms

/A
--
Nu med transport til Midtfynsfestival -- www.midtfyn.com

Kommentar
Fra : Nyhedsbruger


Dato : 25-06-01 21:18

konsulenten <konsulenten.news@kandu.dk> wrote in message
news:T_CZ6.2047$lf5.391384@news010.worldonline.dk...
> Hej alle sammen,
>
> Jeg har lavet en search engine som søger på indekserede ord i MS SQL.
> Det køre også temmelig godt, bortset fra at min søgning tager for lang
> tid.
[Snip ]
> Er der nogen af jer som kender til problemet? Eller kender et sted hvor
> jeg kan finde informationer om måden at bygge en search engine? Når jeg
> kigger på www.google.com, og ser deres tider, er det mig en gåde, for så
> langt ned kan jeg ikke engang komme bare med søgning af et ord.
>
> Konsulenten
>
Hej Konsulenten

Så vidt jeg husker er det et sted, der hedder
www.SearchEngineWatch.com, der indeholder en masse omkring
søgemaskiner. For at få de bedst artikler, skal man dog være medlem
(som der vist koster penge).

Ellers søg på google efter implementation af søgemaskiner, den burde
give dig nogle gode links .

--
Mvh.
Mikkel Bundgaard
RUC Datalogi
http://officehelp.gone.dk



Kommentar
Fra : Kristian Damm Jensen


Dato : 27-06-01 07:26

Hej,

For dett første: I dit første indlæg skriver du om temporære tabeller. Hvilke af dine tabeller er temporære?

For det andet: Har du prøvet at kigge på en queryplan?

VH
Kristian Damm Jensen

Accepteret svar
Fra : gibson

Modtaget 200 point
Dato : 21-07-01 10:47

Du kan finde svaret på dit problem her :

http://www.eksperten.dk/spm/90984

Du har følgende muligheder
Eftersom du ikke er logget ind i systemet, kan du ikke skrive et indlæg til dette spørgsmål.

Hvis du ikke allerede er registreret, kan du gratis blive medlem, ved at trykke på "Bliv medlem" ude i menuen.
Søg
Reklame
Statistik
Spørgsmål : 177414
Tips : 31962
Nyheder : 719565
Indlæg : 6407831
Brugere : 218875

Månedens bedste
Årets bedste
Sidste års bedste