gul*_*aek 9 sql full-text-search full-text-indexing sql-server-2008
我正在运行Sql Server 2008 R2,我需要在具有内部联接的视图上启用全文搜索.我的问题是我不知道如何创建我的全文索引.
当我使用全文索引向导时,我收到此错误.
必须在此表/视图上定义唯一列.
为了让您更好地了解我的问题,请参阅w3school的以下示例http://www.w3schools.com/sql/sql_join_inner.asp最后一个选择只是我的观点.
PersonOrderView - View
SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
FROM Persons
INNER JOIN Orders
ON Persons.P_Id=Orders.P_Id
ORDER BY Persons.LastName <- Order by is not important for me
Persons - Table
P_Id (PK, int, not null)
LastName(nvarchar(50), null)
FirstName(nvarchar(50), null)
Address(nvarchar(50), null)
City(nvarchar(50), null)
Orders - Table
O_Id(PK, int, not null)
P_Id(FK, int, not null)
OrderNo(nvarchar(50), not null)
Run Code Online (Sandbox Code Playgroud)
The*_*yan 17
您只能在索引视图上创建全文索引,这就是您收到错误的原因.要在表或视图上创建全文搜索,它必须具有唯一的单列非可空索引.
换句话说,您应该创建如下所示的视图:
CREATE VIEW ViewSearch WITH SCHEMABINDING AS
SELECT Persons.P_Id AS ID, Persons.LastName, Persons.FirstName, Orders.OrderNo
FROM Persons
INNER JOIN Orders ON Persons.P_Id=Orders.P_Id
GO
CREATE UNIQUE CLUSTERED INDEX IX_ViewSearch ON ViewSearch (ID)
Run Code Online (Sandbox Code Playgroud)
SQL全文搜索通过名为population的进程构建全文索引,该进程使用单词及其在表和行中出现的位置填充索引.这就是为什么您需要一个唯一标识每一行的字段,这就是您需要将视图编入索引的原因.
| 归档时间: |
|
| 查看次数: |
13435 次 |
| 最近记录: |