比方說,我們有一個Employees
表,其中有Note
字段上的全文索引。 我們可以通過這樣的搜索查詢該表:SELECT ID FROM Employees WHERE CONTAINS(Note, 'scout')
如果底層表已被索引,我們爲什麼需要全文索引
然而,如果我們創建爲SELECT ID, Note FROM Employees
簡單的東西的EmployeesView
,我們無法查詢與SELECT ID FROM EmployeesView WHERE CONTAINS(Note, 'scout')
該查詢該視圖將提高以下錯誤:
Cannot use a CONTAINS or FREETEXT predicate on table or indexed view 'EmployeesView' because it is not full-text indexed.
我想了解爲什麼它是不可能的,以便對其基礎表上運行FTS像它對於其他常規指標?
注#1這個問題不是關於如何在視圖上創建全文索引,因爲這已經是answered。這個問題是爲了理解我們爲什麼必須這樣做。
注#2我們的數據庫比所提供的例子更復雜。我們有許多視圖使用相同的全文索引表,一些可以被索引,而另一些則不可以,因爲模式綁定限制。如果每個視圖都相同,我也認爲它有點奇怪(並且存在巨大的磁盤空間浪費)以將FTI添加到每個視圖中。