Jeg er begyndt at eksperimentere med brugen af full-text index i MS SQL, og har da også fundet ud af det mest basale. Jeg har bl.a. fundet ud af, at bruge følgende SQL-query: SELECT TOP 100 PERCENT dbo.Page.PageID, dbo.Page.PageMenuText, dbo.Paragraph.ParagraphUpdatedDate, KEY_TBL.RANK AS Relevance FROM dbo.Paragraph INNER JOIN CONTAINSTABLE(Paragraph, ParagraphText, 'searchstring') KEY_TBL ON dbo.Paragraph.ParagraphID = KEY_TBL.[KEY] INNER JOIN dbo.Page ON dbo.Paragraph.ParagraphPageID = dbo.Page.PageID ORDER BY KEY_TBL.RANK DESC
Ovenstående SQL har jeg luret via Microsofts hjemmeside, og det virker umiddelbart ok, men mit problem er, at jeg gerne vil kunne foretage en søgning i flere kolonner, som er spredt over to tabeller. De to tabeller har jeg allerede tilføjet til mit full-text index, men spørgsmålet er om jeg overhovedet kan foretage en CONTAINSTABLE på to forskellige tabeller? Hvis jeg kan, hvordan gøres det så?
Virksomheder er på vej fra store sprogmodeller, der svarer på spørgsmål, til AI-agenter, der kan udføre opgaver på egen hånd. Det gør teknologien mere nyttig – og langt mere risikabel.
Lav en temporær tabel hvor du fylder dine forskellige containstable data ind i:
--Create temporary result table CREATE TABLE #QueryResult (ID int, Rank int)
--perform search on first table and put results in temp table INSERT #QueryResult SELECT DocumentID, K.Rank FROM Document INNER JOIN CONTAINSTABLE( Document,*,@searchFor,1000) AS K ON Document.DocumentID = K.[KEY]
--perform search on second table and put results in temp table INSERT #QueryResult SELECT documentID, KWD.RANK FROM docKeyword INNER JOIN (SELECT KeywordID,K.Rank FROM Keyword INNER JOIN CONTAINSTABLE( Keyword,Keyword,@searchFor,1000) AS K ON Keyword.KeywordID = K.[KEY]) AS KWD ON docKeyword.KeywordID = KWD.KeywordID
--get all results from temp table SELECT Document.DocumentID,Document.FileNam FROM Document INNER JOIN (SELECT TOP 1000 ID, Max(Rank) as Rank FROM #QueryResult GROUP BY ID ORDER BY Rank DESC) AS Result ON Document.Document_nr = Result.ID
--Drop temporary result table DROP TABLE #QueryResult
Synes godt om
Ny brugerNybegynder
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.