我需要使用全文搜索在數據庫中的兩個表中搜索多個列。所討論的兩個表格具有全文索引的相關列。在多個表中使用SQL Server 2008中的全文本搜索,列
的原因,我選擇了全文搜索: 1.爲了能夠方便地搜索重音字(CAFE) 2.爲了能夠根據字接近排名等 3.「難道你的意思是XXX?「功能
這裏是一個虛擬表結構,說明了這種挑戰:
Table Book BookID Name (Full-text indexed) Notes (Full-text indexed) Table Shelf ShelfID BookID Table ShelfAuthor AuthorID ShelfID Table Author AuthorID Name (Full-text indexed)
我需要通過書名,書筆記和作者姓名進行搜索。
我知道有兩種方法來實現:
使用全文索引視圖:這將是我的首選方法,但我不能因爲一個視圖做到這一點要進行全文索引,它需要進行模式綁定,沒有任何外部連接,只有一個唯一的索引。我需要獲取數據的視圖不符合這些約束條件(它包含許多其他需要從中獲取數據的連接表)。
在存儲過程中使用聯接:這種方法的問題是我需要按排名排序結果。如果我在表中進行多個連接,默認情況下,SQL Server不會跨多個字段進行搜索。我可以在兩個鏈接的表上組合兩個單獨的CONTAINS查詢,但我不知道如何從兩個搜索查詢中提取合併的排名。例如,如果我搜索「亞瑟」,則應該考慮書籍查詢和作者查詢的結果並相應地加權。
對於#1,你說你加入...你真的是外面加入?這是一個笛卡兒的產品,我懷疑你是否真的這樣做。內部或左/右連接很好。 – 2008-12-31 20:36:18
我沒有爲任何顯示的表使用OUTER JOIN。還有其他我需要左外連接的表,因爲它們可能沒有任何FKed行。 – 2009-01-01 10:46:32