我有什麼,我認爲是一個非常基本的場景,但我讀過使得它聽起來像這樣不容易使用SQL Server全文目錄和索引。與CONTAINSTABLE和全文索引布爾邏輯的多列
我有2列,名字和姓氏。我想支持他們的全文搜索,這樣如果有人輸入「約翰史密斯」的人,在上匹配首先和最後一個出現。
雖然可以很容易地創建跨多個列的索引,以及易查多列,得分並不反映多列。
SELECT [Key], Rank
FROM CONTAINSTABLE([User], (FirstName,LastName), '<CLAUSE_HERE>')
- 如果CLAUSE_HERE是「約翰·史密斯」我沒有得到任何結果,因爲這句話並不在任一領域的存在。
- 如果是「約翰·史密斯或」我與任一名稱的所有用戶在任何領域中,無益的順序進行排序。
- 如果它是「約翰和史密斯」,我沒有得到任何結果,因爲這兩個字段都不包含這兩個單詞。
似乎唯一的解決辦法是自動生成一個查詢,每個字段上運行containstable
,做一些數學,總結分數等。這聽起來是對的嗎?有更簡單的方法嗎?我的實際查詢有更多的字段 - 這是一個簡單的例子。
完全工作!爲什麼沒有全文自動執行此操作?我認爲在多列上應用全文可以像現成的那樣工作。可能不會。 – 2012-02-07 00:14:39