【问题标题】:Fulltext results and wrongs results全文结果和错误结果
【发布时间】: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


    【解决方案1】:

    您似乎正在尝试进行前缀搜索,将 * 附加到您的搜索条件应该可以为您提供所需的结果。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-04-14
      • 2014-06-27
      • 1970-01-01
      • 1970-01-01
      • 2015-11-10
      • 1970-01-01
      • 2014-11-12
      • 1970-01-01
      相关资源
      最近更新 更多