簡體   English   中英

關系表上的全文搜索?

[英]Full Text Search On Relational Tables?

我有一個 sql 服務器數據庫,它有多個相互關聯的表。

我想知道是否可以為此使用 FreeTextTable 或 ContainsTable?

我只看到了查看一張表並搜索所有列的示例。 我還沒有見過我可能會說表格的情況。 讓我們稱之為“學生申請表”。

在此表格上,它可能包含以下信息

  • 學生名字
  • 學生姓氏
  • 地址
  • 他們希望就讀的校園
  • 向我們介紹你自己

現在我想構建 1 個搜索框來搜索所有這些表並找到這個“應用程序”

用戶可能會輸入

約翰史密斯主校區動機

因此,所有表和列都需要檢查,但最終結果將帶回全文搜索認為與輸入內容匹配的應用程序。

表結構可能是這樣的

應用

  • ID
  • 校園號
  • 地址 ID

校園

  • ID
  • 姓名

地址

  • id -名稱

在我的真實數據庫中,我得到了 5 或 6 個與“應用程序”表連接的表,並且都需要考慮在內。

這可以通過全文搜索來完成嗎? 還是我必須單獨搜索每個表並以某種方式將它們重新組合在一起。

您可以使用一個索引視圖來連接您要搜索的所有值...

CREATE VIEW dbo.V_FT
WITH SCHEMABINDING
AS
SELECT A.id, 
       CONCAT(firstName, '#', lastName, '#', C.name, '#',D.name) AS DATA
FROM   dbo.Application
       JOIN dbo.Campus AS C ON C.id = A.campusId
       JOIN dbo.Address AS D ON C.id = A.AddressId;
GO

CREATE UNIQUE CLUSTERED INDEX X_V_APP ON dbo.V_FT (id);
GO

然后在索引視圖的 DATA 列上創建一個 FT 索引

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM