【发布时间】:2022-10-21 00:56:12
【问题描述】:
我在Article 表上有一个完整的索引目录,定义如下:
create fulltext catalog [Article_Catalog]
go
create fulltext index on [Article] (ArticleId, ArticleIdTrimed, Designation, FlatVehicles, FlatCategories, FlatCriterias) key index [Article_id] on [Article_Catalog] with change_tracking = manual
go
alter fulltext index on [Article] start full population
这是样本数据:
我想搜索 ArticleId 022.465 但我没有得到任何结果:
-- Query
Declare @q as varchar(50) = '022.4'
declare @q2 varchar(50)
set @q2 = isnull(@q, '')
declare @ft varchar(50)
set @ft = '"' + @q2 + '"'
select
a.DataSupplierId,
a.SupplierId,
a.ArticleId
from
containstable(article, (
ArticleId,
ArticleIdTrimed
), @ft) ftx
inner join article a on a.id = ftx.[key]
order by
ftx.[rank] desc
但是,如果我搜索这个字符串,它的工作原理:
Declare @q as varchar(50) = '022.465'
它正在解决这个问题:
Declare @q as varchar(50) = '022465'
而且我真的不明白为什么...
【问题讨论】:
标签: sql sql-server indexing full-text-search