2011-12-13 21 views
7

Tôi đang chạy Sql Server 2008 R2 và tôi cần bật tìm kiếm Toàn văn bản trên chế độ xem có tham gia bên trong. Vấn đề của tôi là tôi không biết cách tạo chỉ mục toàn văn.Bật Tìm kiếm Toàn văn trên Chế độ xem với Tham gia Bên trong

Khi tôi sử dụng Trình hướng dẫn lập chỉ mục toàn văn, tôi nhận được lỗi này.

Cột duy nhất phải được xác định trên bảng/chế độ xem này.

Để bạn hiểu rõ hơn về vấn đề của tôi, vui lòng xem ví dụ sau đây từ w3school http://www.w3schools.com/sql/sql_join_inner.asp Lựa chọn cuối cùng chỉ là quan điểm của tôi.

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) 

Trả lời

16

Bạn chỉ có thể tạo chỉ mục văn bản đầy đủ trên indexed view, đó là lý do bạn gặp lỗi. Để tạo tìm kiếm toàn văn bản trên một bảng hoặc khung nhìn, nó phải có một chỉ mục duy nhất, một cột, không thể vô hiệu.

Nói cách khác, bạn nên tạo cái nhìn một cái gì đó của bạn như thế này:

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) 

SQL tìm kiếm văn bản đầy đủ xây dựng một chỉ mục toàn văn bản thông qua một quá trình gọi là dân số, trong đó lấp đầy chỉ số với các từ và các địa điểm trong đó chúng xuất hiện trong các bảng và hàng của bạn. Đó là lý do tại sao bạn cần một trường xác định duy nhất bạn mỗi hàng và đó là lý do tại sao bạn cần phải làm cho khung nhìn được lập chỉ mục.

Thông tin thêm herehere.

+0

Nhưng tôi có thể tạo ví dụ của mình không? Không chắc chắn đi đâu, từ câu trả lời của bạn. – gulbaek

+1

@gulbaek - Tôi đã thêm một ví dụ, nhưng tôi khuyên bạn nên đọc các bài viết trong các liên kết. Liên kết đầu tiên mô tả cách hoạt động của tìm kiếm toàn văn và phần thứ hai là hướng dẫn về cách tạo một fts dựa trên nhiều bảng. – TheBoyan

+0

@gulbaek - bạn cũng có thể tìm thấy thông tin hữu ích về cách tạo chỉ mục toàn văn tại đây: http://msdn.microsoft.com/en-us/library/ms187317.aspx – TheBoyan

Các vấn đề liên quan