Avatar billede peterterkildsen Nybegynder
01. april 2003 - 22:47 Der er 2 kommentarer og
1 løsning

Kombinere Index Server og SQL Server

Jeg er i gang med at lave en søgefunktion på et intranet, hvor medarbejderne bl.a. skal kunne uploade filer. Disse filer skal bagefter kunne hentes frem via en søgning, og til dette har jeg tænkt mig at benytte Index Server.

Så langt så godt! Men da der er mange filer, så er der også behov for at benytte meta data til at lave en mere præcis søgning. Derfor vil jeg placere disse meta data i SQL Server.

Men for at få dette til at virke, så er jeg vel i praksis nødt til først at foretage en søgning i SQL Server, derefter foretage en søgning i Index Server, og til sidst foretage en sortering af data, så duplikater elimineres. Eller er der en smartere metode ?
Jeg har ledt på Internettet, og kan se, at der er andre, der forsøger at lave en kombineret søgning således, at det hele kan klares via et kald. Men kan det lade sig gøre, og er der eventuelt nogen, der har erfaring med det ?
Avatar billede mortrr Praktikant
01. april 2003 - 23:02 #1
Jeg har selv benyttet en metode hvor der først søges i index-server efter filer.
Det giver mig et sæt filnavne som kan benyttes til at foretage en videre søgning på sql-serveren.
WHERE Filnavn IN ('/stien/fil1.doc', '/ensti/fil2.pdf')

Det fungerer faktisk ganske smertefrit, og hurtigt.


Men for at få en helt rigtig udnyttelse af kombinationen, så kræver det en STOR server, og at filerne gemmes i sql-tabeller (binary), og indekseres heri.
Det kræver blot en kolonne der angiver extension, så kan SQL full-text engine (som også er index-server) klare den.
Avatar billede peterterkildsen Nybegynder
02. april 2003 - 08:14 #2
hhhmm...jeg har læst op på sagen. Det viser sig, at der er mulighed for at lave en kombineret søgning ved at linke index server og SQL-server sammen. Jeg vil lige forsøge at jagte en sådan løsning.
Avatar billede peterterkildsen Nybegynder
02. april 2003 - 09:47 #3
Godt så...jeg har fundet en løsning, og hvis der er nogen, der er interesserede, så kan i læse nedenfor, hvad der er gjort:

Der er mulighed for at lave en kombineret søgning både i Index Server og SQL Server. Konkret gøres dette ved, at der i SQL Server oprettes felter, som indeholder f.eks. filnavnet.

Derefter oprettes der en forbindelse imellem SQL Server og Index Serverens katalog via følgende kommando, som kan udføres i Query Analyzer:
sp_addlinkedserver <LinkedServerNavn>,'Index Server','MSIDXS',<Catalog navn>

En kombineret søgning kan derefter foretages via følgende SQL:
SELECT    *
FROM        OPENQUERY(ktcweb,
                      'select DocTitle, DocAuthor, vpath, path, filename, Rank, size, write, create, characterization, DocCategory from
scope() WHERE
    CONTAINS (DocTitle, ''"QUERY"'')
    OR CONTAINS (DocAuthor, ''"QUERY"'')
    OR CONTAINS (filename, ''"QUERY"'')
    OR CONTAINS (DocCategory, ''"QUERY"'')
') AS IndexResult, Files
WHERE Files.FileFriendlyName = FileResult.FILENAME COLLATE database_default

Det sparker r...
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