首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在MS中创建FREETEXTTABLE

在MS中创建FREETEXTTABLE
EN

Stack Overflow用户
提问于 2015-10-05 10:37:19
回答 2查看 1.2K关注 0票数 1

我正在尝试创建FREETEXTTABLE。我得到了以下错误。

Msg 7601,16级,状态2,第1行

不能在表或索引视图“标志”上使用包含或FREETEXT谓词,因为它不是全文索引的.

我的样本

代码语言:javascript
复制
CREATE TABLE Flags (Country nvarchar(30) NOT NULL, FlagColors varchar(200));

CREATE UNIQUE CLUSTERED INDEX FlagKey ON Flags(Country);

INSERT Flags VALUES ('France', 'Blue and White and Red');
INSERT Flags VALUES ('Italy', 'Green and White and Red');
INSERT Flags VALUES ('Tanzania', 'Green and Yellow and Black and Yellow and Blue');

SELECT * FROM Flags;
GO

CREATE FULLTEXT CATALOG TestFTCat;
CREATE FULLTEXT INDEX ON Flags(FlagColors) KEY INDEX FlagKey ON TestFTCat;
GO 

SELECT * FROM FREETEXTTABLE (Flags, FlagColors, 'Blue');
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-10-06 10:47:52

验证是否安装了MSSQL 2008的全文“组件”的简单方法是执行以下MSSQL

代码语言:javascript
复制
SELECT SERVERPROPERTY('IsFullTextInstalled')

如果返回的值为“1”,则会安装组件。

否则,必须在现有Server实例上安装安装Server全文搜索

  1. 在服务器上下载“Server”的最新安装程序(例如,保存在"c:\installers“中) MSSQLServer2008Express提供高级服务。
  2. 浏览到保存它的地方,并解压自解压EXE (右击并单击“提取”)。
  3. 通过双击安装安装。
  4. 选择“将现有实例升级到新版本或版本”,然后执行所有步骤。
  5. 我很确定我从来没有被问到我想要什么功能(没有机会选择全文搜索)。当再次运行安装程序时,也没有办法“向现有实例添加特性”,因此最终我发现需要执行以下附加步骤.
  6. 转到控制面板>添加或删除程序
  7. 查找Server并打开它。(它问了我一个问题,大意是“当其他人使用它时卸载它会给他们带来一些痛苦”-这有点吓人,但我说好了,然后它问了通常的问题:我想卸载还是改变?)
  8. 问题:卸载或更改(回答:更改)。
  9. 单击“添加功能”
  10. 浏览安装媒体。在这种情况下,我们可以找到为“”解压缩安装程序的位置(注意,必须提取它,否则它会不喜欢)
  11. 在台阶上拉屎。然后,您将被要求“安装新实例”或“向现有实例添加功能”(选择“添加功能”)。
  12. 在“功能”步骤中,您可以选中“全文搜索”框(万岁!)
  13. 完成向导,现在一切都正常,运行这个sql来确认: 选择SERVERPROPERTY('IsFullTextInstalled')

现在您可以使用T启用全文搜索

代码语言:javascript
复制
-- We'll use Northwind sample database to enable
-- Full Text Search feature using T-SQL code only
USE Northwind
GO

-- We need to enable full text search for Northwind database
-- We will do that with sp_fulltext_database procedure
EXEC sp_fulltext_database 'enable'
-- Create catalog
EXEC sp_fulltext_catalog 'NorthwindCatalog','create'
-- Add some indexes to database
EXEC sp_fulltext_table 'Customers', 'create', 'NorthwindCatalog', 'pk_customers'
EXEC sp_fulltext_table 'Orders', 'create', 'NorthwindCatalog', 'pk_orders'
-- add columns for searching to full text search index
EXEC sp_fulltext_column 'Customers', 'CompanyName', 'add'
EXEC sp_fulltext_column 'Customers', 'ContactName', 'add'
EXEC sp_fulltext_column 'Customers', 'Address', 'add'
EXEC sp_fulltext_column 'Customers', 'City', 'add'
EXEC sp_fulltext_column 'Orders', 'ShipName', 'add'
EXEC sp_fulltext_column 'Orders', 'ShipAddress', 'add'
EXEC sp_fulltext_column 'Orders', 'ShipCity', 'add'
-- Activate full text search indexes
EXEC sp_fulltext_table 'Customers','activate'
EXEC sp_fulltext_table 'Orders','activate'
-- start full population of catalog
EXEC sp_fulltext_catalog 'NorthwindCatalog', 'start_full'

现在,您可以使用CONTAINSTABLE包含、FREETEXT或FREETEXTTABLE关键字对索引列执行搜索。例如,假设我想检查所有联系人,其中的名字是Maria或Ana:

代码语言:javascript
复制
USE Northwind
GO

SELECT CustomerId, ContactName, CompanyName, Address, City
FROM Customers c INNER JOIN
CONTAINSTABLE(Customers, (ContactName), '"Maria" OR "Ana"') AS KEY_TBL
ON c.CustomerId = KEY_TBL.[KEY]
ORDER BY KEY_TBL.RANK DESC

此SQL查询将返回结果,如下图所示:

票数 1
EN

Stack Overflow用户

发布于 2015-10-05 12:21:04

下面的代码部分不知怎么没有在数据库上执行请先执行下面的命令,然后使用FreeTextTable

代码语言:javascript
复制
CREATE FULLTEXT CATALOG TestFTCat;
CREATE FULLTEXT INDEX ON Flags(FlagColors) KEY INDEX FlagKey ON TestFTCat;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32946523

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档