2011-12-13 22 views
7

Sql Server 2008 R2 çalıştırıyorum ve iç birleştirme ile bir görünümde Tam Metin aramayı etkinleştirmem gerekiyor. Benim sorunum, Tam Metin İndeksimi nasıl oluşturacağımı bilmem.İç Metin ile Görünümde Tam Metin Aramasını Etkinleştir

Tam Metin Dizine Ekleme Sihirbazı'nı kullandığımda bu hatayı alıyorum.

Bu tablo/görünümde benzersiz bir sütun tanımlanmalıdır. Sorunumu daha iyi anlayabilmeniz için, lütfen aşağıdaki örnekte bulunan w3school http://www.w3schools.com/sql/sql_join_inner.asp'a bakın. Son seçim yalnızca benim görünümümdür. Hata alıyor neden

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) 

cevap

16

Yalnızca içinde indexed view üzerinde tam metin dizini oluşturabilirsiniz olmasıdır. Bir tablo veya görünümde tam metin araması oluşturmak için benzersiz, tek sütunlu, geçersiz olmayan bir dizine sahip olmalıdır. Başka bir deyişle

, böyle görünümünüzü şey yaratmak olmalıdır:

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 tam metin arama kelimeler ve konumları ile endeks doldurur nüfus olarak adlandırılan bir süreç yoluyla bir tam metin dizini oluşturur masalarınızda ve satırlarınızda oluşurlar. Bu nedenle, her bir satırı benzersiz bir şekilde tanımlayacak bir alana ihtiyacınız vardır ve bu nedenle görünümü endeksli yapmanız gerekir.

Daha fazla bilgi here ve here.

+0

Ama benim örneğimde yaratmak mümkün mü? Cevabınızdan nereye gideceğinizden emin değilsiniz. – gulbaek

+1

@gulbaek - Bir örnek ekledim, ancak linklerdeki makaleleri okumanızı şiddetle tavsiye ediyorum. İlk link, tam metin aramanın nasıl çalıştığını ve ikincisinin, çoklu tablolara karşı nasıl bir fts oluşturulacağı hakkında bir kılavuz olduğunu açıklar. – TheBoyan

+0

@gulbaek - Burada tam metin dizini oluşturma hakkında yararlı bilgiler bulabilirsiniz: http://msdn.microsoft.com/en-us/library/ms187317.aspx – TheBoyan

İlgili konular