Search code examples
sql-serverfull-text-search

Full-Text Search is not installed, or a full-text component cannot be loaded


I am currently attempting to create a full text index on a unique column. The table definition is:

CREATE TABLE [dbo].[DictionaryWords](
       [Id] [int] IDENTITY(1,1) NOT NULL,
       [Word] [varchar](255) NOT NULL,
       [Frequency] [int] NOT NULL,
CONSTRAINT [PK_DictionaryWords] PRIMARY KEY CLUSTERED 
(
       [Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, 
ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY],
CONSTRAINT [UX_Word] UNIQUE NONCLUSTERED 
(
       [Word] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, 
ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]

I then created the full text catalogue:

CREATE FULLTEXT CATALOG ft AS DEFAULT

and finally attempted to create the full text index:

CREATE FULLTEXT INDEX ON DictionaryWords(Word) KEY INDEX UX_Word

but I get the error:

Full-Text Search is not installed, or a full-text component cannot be loaded

Full text search is installed, as testified by the command:

SELECT SERVERPROPERTY('IsFullTextInstalled')

which returns a value of 1. So presumably the problem is that "full-text component cannot be loaded".

Any ideas what I should look at next?


Solution

  • Looks like the problem is that the full text catalogue was created BEFORE the full text component was installed.

    I was fortunate to be have the luxury to drop the database and recreate the tables from scratch. The above three commands now worked.

    If I couldn't drop the database, then probably deleting the full text catalogue and then recreating it would solve it (better than my drop database sledgehammer approach!)