2008-11-04 11 views
7

SQL Server 2005'te bir görünümde bir tam metin dizini oluştururken sıkıntı yaşıyorum. Sorunu incelemedim. Aldığım hata iletisi: "'Id', tam metin arama tuşunu zorlamak için geçerli bir dizin değil. Tam metin arama anahtarı, çevrimdışı olmayan, benzersiz, yinelenmez, tek sütunlu bir dizin olmalıdır. deterministik olmayan veya kesin olmayan, dağınık hesaplanmış hesaplanmış bir sütun üzerinde tanımlanmamış ve en fazla 900 bayt boyutuna sahip. Tam metin anahtarı için başka bir dizin seçin. " "Çevrimdışı" gereksinimi dışında errorstring'deki her gereksinimi doğrulayabildim, bunun ne anlama geldiğini gerçekten bilmiyorum. Oldukça emin değilim, ancak çevrimdışı değil.SQL Server 2005'te bir görünümde bir tam metin dizini oluşturma

Aşağıdaki tabloyu oluşturmak, görüntülemek ve dizin oluşturmak için komut dosyası sahibim. Aşağıdaki örnekte gerçekten bir görünüme ihtiyacım yok, sorunu izole etmeye çalıştığım için basitleştirildi. tam metin dizini oluştururken

 
DROP VIEW [dbo].[ProductSearchView] 
DROP TABLE [dbo].[Product2] 
GO 


SET NUMERIC_ROUNDABORT OFF; 
SET ANSI_PADDING, ANSI_WARNINGS, CONCAT_NULL_YIELDS_NULL, ARITHABORT, 
    QUOTED_IDENTIFIER, ANSI_NULLS ON; 
GO 

CREATE TABLE [dbo].[Product2](
    [Id] [bigint] NOT NULL, 
    [Description] [nvarchar](max) NULL, 
    CONSTRAINT [PK_Product2] PRIMARY KEY CLUSTERED 
    (
     [Id] ASC 
    )WITH (PAD_INDEX = OFF, IGNORE_DUP_KEY = OFF) ON [PRIMARY] 
) ON [PRIMARY] 
GO 

CREATE VIEW [dbo].[ProductSearchView] WITH SCHEMABINDING 
AS 
SELECT P.Id AS Id, 
     P.Description AS Field 
FROM [dbo].Product2 AS P 
GO 

-- this index may be overkill given the PK is set... 
CREATE UNIQUE CLUSTERED INDEX PK_ProductSearchView ON [dbo].[ProductSearchView](Id) 
GO 

-- This is the command that fails 
CREATE FULLTEXT INDEX ON [dbo].[ProductSearchView](Id, Field) 
KEY INDEX Id 
ON FullText WITH CHANGE_TRACKING AUTO; 
GO 

cevap

14

yerine sütun adının endeksinin adını belirtmek gerekir:

CREATE FULLTEXT INDEX ON [dbo].[ProductSearchView](Id, Field) 
KEY INDEX PK_ProductSearchView 
ON FullText WITH CHANGE_TRACKING AUTO; 
GO 

Bu alıyorsanız hatayı telafi edecektir, ama bu sana bir hata verecektir Çünkü metin aramanıza karakter olmayan bir temel sütun eklemeyi deniyorsunuz. Tam metin kataloğunuzda kullanmak için başka bir indeksli karakter sütunu seçmek isteyebilirsiniz.

+0

çözümün mükemmel olduğunu teşekkürler –

İlgili konular