我正在開發一個SQL Server 2008項目,我相信全文搜索是最好的方法。我一直在儘可能多地閱讀它,並且非常瞭解如何將它設置爲單個表格。但我不完全知道如何用我的方案設置它 - 想象一下如下表結構:SQL Server全文搜索 - 多對多關係
書
- Id
- Title
- Description
BOOKAUTHOR
- BookId
- AuthorId
作者
- Id
- Name
正如您所看到的,數據庫包含一個帶有書籍的表格,每本書可以沒有,一個或多個作者。每位作者也可以是沒有,一本或多本書的一部分 - 即Book
和Author
表具有多對多關係,可通過鏈接表BookAuthor
處理。
我現在想要完成的是一個搜索工具,用於根據用戶提供的搜索字符串查找匹配的書籍。因此,如果在Brown
用戶類型我希望找到的所有書籍,其中以下任一列中包含單詞Brown
:
Book.Title
Book.Description
Author.Name
從本質上說,我希望有一個結果集的書籍,包括書的標題Brown Bear
和作者Dan Brown
所寫的書籍。如果有任何建議,我應該如何設置,我真的很感激你的意見!
(作爲一個側面說明,一旦我有這樣的過濾工作,查詢結果將還需要排序和分頁,通過@SortOrder
,@PageIndex
和@PageSize
傳遞到存儲過程中處理 - 但我想這可能是一個)
爲什麼您認爲全文搜索在這裏是一個體面的解決方案?這對我來說看起來像正常的數據庫設計。 – TomTom 2012-03-04 13:20:47
[在多個表,列中使用SQL Server 2008中的全文搜索]可能的重複(http://stackoverflow.com/questions/403630/using-full-text-search-in-sql-server-2008-across -multiple-tables-columns) – 2012-03-04 14:01:19
@TomTom如上所述搜索「Brown」只是我想獲得的簡單示例。我需要能夠搜索x個單詞,並且使用LIKE不起作用。我們還希望將來能夠找到_almost_匹配的行,並且這將需要全文搜索(據我所知)。 – Iskariot 2012-03-05 07:33:18