【问题标题】:FullText Index does not work even after I created them全文索引即使在我创建它们之后也不起作用
【发布时间】:2014-01-23 18:03:14
【问题描述】:

这是我得到的错误:

Message: [Microsoft][SQL Server Native Client 11.0][SQL Server]
Cannot use a CONTAINS or FREETEXT predicate on table or indexed view 'database.dbo.crm_main' 
because it is not full-text indexed.

但我已经创建了它们,这是我使用的命令:

use [database]
create fulltext catalog FullTextCatalog as default
create fulltext index on [database].[dbo].[crm_main] key index PK_crm_main 
ON FullTextCatalog WITH CHANGE_TRACKING AUTO

在创建过程中没有遇到错误。我做错了什么?

这是我的sql语句:

SELECT TOP 1000 *
FROM [database].[dbo].[crm_main]   
INNER JOIN FREETEXTTABLE ([database].[dbo].[crm_main], *, '%Wade%') 
AS SEARCH_TABLE ON SEARCH_TABLE.[KEY] = crm_main.id 

【问题讨论】:

    标签: sql sql-server sql-server-2008 full-text-search


    【解决方案1】:

    您犯的唯一错误是您没有提及列名 在您的创建索引语句中,您想要在哪些列上 创建索引见下文。

    create fulltext index 
    ON [dbo].[crm_main](Column1,Column2) --<-- you need to mention the column names
    key index PK_ID                        -- on which you want to create FT indexes                                
    ON FullTextCatalog 
    WITH CHANGE_TRACKING AUTO;
    

    【讨论】:

    • 如果我想要整个表的完整索引怎么办?
    • @YongkeBillYu 那么您需要提及所有列,但在您这样做之前,请确保所有列的数据类型确实允许您在它们上创建 FT 索引。有一些限制。在这里阅读TYPE COLUMNtechnet.microsoft.com/en-us/library/ms187317.aspx的部分
    猜你喜欢
    • 1970-01-01
    • 2021-11-21
    • 1970-01-01
    • 2019-06-17
    • 1970-01-01
    • 2020-11-29
    • 1970-01-01
    • 2018-02-18
    • 1970-01-01
    相关资源
    最近更新 更多