全文检索中出现的问题

fanruinet 2004-05-10 11:56:52
我在Shops表中建立了一个Items字段的索引,但在查询分析器运行下列查询语句时出错

select * from shops where Contains(Items, '日用品')

错误信息如下:
服务器: 消息 7619,级别 16,状态 1,行 1
全文操作运行失败。查询子句只包含被忽略的词。

我想最终解决的问题是:利用sql语句检索一个nvarchar字段中的任何一个词,就是搜索引擎,请问这该怎样实现?
另:contains该怎样才能运行?
...全文
164 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
fanruinet 2004-06-16
  • 打赏
  • 举报
回复
lynx1111和netcoder都说到点上了,用你们的方法,问题已经解决了,谢谢
fanruinet 2004-06-16
  • 打赏
  • 举报
回复
晕,论坛数据库咋了?没了好几个帖子。我都结贴了。。。。。。
netcoder 2004-06-11
  • 打赏
  • 举报
回复
同意 lynx1111(任我行:一个PLMM看着就兴奋的男人)
在Program Files\Microsoft SQL Server\MSSQL\FTDATA\SQLServer\Config
……
westseason 2004-06-11
  • 打赏
  • 举报
回复
select * from shops where Contains(Items, '日用品')
欧文踢。如此写就可以了:
select * from shops where Contains(Items,'"*日用品*"')
或者
select * from shops where FreeText(Items,'"日用品"')
没问题的
internetcsdn 2004-05-11
  • 打赏
  • 举报
回复
CONTAINS
一个谓词,用于搜索包含基于字符的数据类型的列,该列与单个词和短语,以及与另一个词一定范围之内的近似词精确或模糊(不太精确的)匹配或者加权匹配。CONTAINS 可以搜索:

词或短语。


词或短语的前缀。


另一个词附近的词。


由另一个词的词尾变化生成的词(例如,词 drive 是 drives、drove、driving 和 driven 词尾变化的词干)。


比另一个词具有更高加权的词。
internetcsdn 2004-05-11
  • 打赏
  • 举报
回复
--联机如是说:

示例
A. 使用带有 <simple_term> 的 CONTAINS
下面的示例查找包含词"bottles"且价格为 $15.00 的所有产品。

USE Northwind
GO
SELECT ProductName
FROM Products
WHERE UnitPrice = 15.00
AND CONTAINS(QuantityPerUnit, 'bottles')
GO

B. 在 <simple_term> 中使用 CONTAINS 和短语
下面的示例返回包含短语 "sasquatch ale" 或 "steeleye stout" 的所有产品。

USE Northwind
GO
SELECT ProductName
FROM Products
WHERE CONTAINS(ProductName, ' "sasquatch ale" OR "steeleye stout" ')
GO

C. 使用带有 <prefix_term> 的 CONTAINS
下面的示例返回所有满足该条件的产品名称:这些产品名称至少含有一个以 ProductName 列中前辍 Choc 起始的词。

USE Northwind
GO
SELECT ProductName
FROM Products
WHERE CONTAINS(ProductName, ' "choc*" ')
GO

D. 使用带有 <prefix_term> 的 CONTAINS 和 OR
下面的示例返回包含字符串 "sea" 或 "bread" 的所有分类描述。

USE Northwind
SELECT CategoryName
FROM Categories
WHERE CONTAINS(Description, '"sea*" OR "bread*"')
GO

E. 使用带有 <proximity_term> 的 CONTAINS
下面的示例返回在词 "spread" 附近有词 "Boysenberry" 的所有产品名称。

USE Northwind
GO
SELECT ProductName
FROM Products
WHERE CONTAINS(ProductName, 'spread NEAR Boysenberry')
GO

F. 使用带有 <generation_term> 的 CONTAINS
下面的示例搜索具有 dry 形式的词的所有产品:dried 和 drying 等等。

USE Northwind
GO
SELECT ProductName
FROM Products
WHERE CONTAINS(ProductName, ' FORMSOF (INFLECTIONAL, dry) ')
GO

G. 使用带有 <weighted_term> 的 CONTAINS
下面的示例搜索包含词 spread、sauces 或 relishes 以及给予每个词不同加权的所有产品名称。

USE Northwind
GO
SELECT CategoryName, Description
FROM Categories
WHERE CONTAINS(Description, 'ISABOUT (spread weight (.8),
sauces weight (.4), relishes weight (.2) )' )
GO

H. 使用带变量的 CONTAINS
下例使用变量而非特定的搜索术语。

USE pubs
GO
DECLARE @SearchWord varchar(30)
SET @SearchWord ='Moon'
SELECT pr_info FROM pub_info WHERE CONTAINS(pr_info, @SearchWord)

lynx1111 2004-05-11
  • 打赏
  • 举报
回复
F:\Program Files\Microsoft SQL Server\MSSQL\FTDATA\SQLServer\Config
下新建noise.chs随便输入几个字符
fanruinet 2004-05-11
  • 打赏
  • 举报
回复
select * from shops where Contains(Items, '日用品')
那这条查询语句有问题吗?
不能正常运行的说

22,210

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧