在sql server中使用全文搜索搜索字符串的中间部分

时间:2013-04-08 04:57:33

标签: asp.net sql sql-server sql-server-2008

我无法使用全文搜索索引搜索字符串的中间部分,例如:有一个字符串“我喜欢音乐”我无法搜索字符串的中间部分...

4 个答案:

答案 0 :(得分:1)

试试LIKE运营商。

SELECT 
    * 
FROM 
    YourTABLE 
WHERE 
    ColumnName LIKE '%like%'

答案 1 :(得分:0)

在查询中使用Like关键字,如下所示:

select * from tablename where col like '%like%'

以下是sql中的类似教程:

http://www.w3schools.com/sql/sql_like.asp

这是MSDN:

http://msdn.microsoft.com/en-us/library/ms179859.aspx

希望它有所帮助。

答案 2 :(得分:0)

好吧,为了仍然使用全文索引并避免表扫描,请尝试使用

 select * 
   from yourTable
  where contains (ColumnName,'like')
    and (ColumnName not like 'like%' or ColumnName like '_%like%')

但是,查询优化器可能会认为全表扫描更有效。

答案 3 :(得分:0)

检查您的表的统计信息是否过期,尤其是检查与您的全文索引相关的统计信息。由于您使用的是SQl Server 2008,因此您可以查询DMV以获取索引的统计信息,或使用DBCC查看统计信息详细信息

DBCC SHOW_STATISTICS ("[schema].[table]",indexname);

检查第一个返回结果,[更新],[行],[行采样],如果统计数据过时,或[行采样]远小于[行],这很多导致SQL引擎决定使用表扫描而不是使用索引。