【发布时间】:2015-05-27 13:08:34
【问题描述】:
我有一个简单的View:
让我们选择前 5 行:(视图没有 top 5 - 只是为了清楚起见)
SELECT TOP 5 [CustomerId]
,[EngLastFirst]
,[EngFirstLast]
,[LocalLastFirst]
,[LocalFirstLast]
FROM [WebERP].[dbo].[View_CustomersNames]
结果:
让我们创建一个全文索引(右击view):
好的。所以现在我们也有一个catalog:
右击catalog - 查看属性:
所有属性都是default:
让我们在catalog上点击rebuild:
很棒
让我们运行一个简单的CONTAINS 查询:
SELECT * FROM View_CustomersNames vcn
where CONTAINS( vcn.*, '"aerSwy*"')
正如您从之前的代码中看到的 - 记录确实存在:
但是它返回no结果
虽然like 确实返回结果:
SELECT * FROM View_CustomersNames vcn
where vcn.engLAstFirst LIKE '%aerSwy%'
问题:
为什么我没有得到这个查询的结果?
SELECT * FROM View_CustomersNames vcn
where CONTAINS( vcn.*, '"aerSwy*"')
NB - 我可能遗漏了一些非常基本的东西(全文搜索的新手)
编辑
在生产环境中 - 它确实有效。在我的本地环境中 - 它没有
【问题讨论】:
-
我对全文搜索一无所知,但也许搜索词应该使用 % 通配符而不是 *
-
@Origin (msdn) : i.imgur.com/hB7m0Cz.png
-
您的视图仅从表中选择 5 条记录,没有 ORDER BY,这可能会导致随机结果。您期望的记录可能不在前 5 名中,无论是在查询时还是在索引时。尝试从视图中删除 TOP 5。
-
本地语言和生产环境的默认语言有区别吗?
-
SO 应该将 downvoter 活动冻结一个月。我从未在 SO 中看到过如此详细的问题。 (不管我是不是)
标签: sql-server sql-server-2008-r2 full-text-search