【问题标题】:Full text search not working - SQL Server全文搜索不起作用 - SQL Server
【发布时间】:2021-02-21 15:55:45
【问题描述】:

我正在使用 SQL Server。我有下表,我想执行全文搜索。

CREATE TABLE CSWAPDB.dbo.Search 
(
    Id int IDENTITY,
    Content varchar(250) NULL,

    CONSTRAINT PK_Search_Id 
        PRIMARY KEY CLUSTERED (Id)
) ON [PRIMARY]

这是全文搜索目录:

CREATE FULLTEXT CATALOG SearchContent;

CREATE FULLTEXT INDEX 
    ON dbo.Search (content language 1033)
    KEY INDEX PK_Search_Id
    ON SearchContent
    WITH CHANGE_TRACKING AUTO;

插入一些数据:

insert into search values('How are you ');

此搜索查询未重新运行任何结果:

select * 
from Search 
where contains(Content, 'How'); 

我得到的唯一输出是这条警告消息:

信息性:全文搜索条件包含干扰词

知道有什么问题吗?

谢谢

【问题讨论】:

  • 错误很明显。 How 被认为是一个干扰词。你应该尝试一个更好的例子。像 thethisme 或 ... 您的示例中的所有三个词几乎都出现在每个短语和文档中,因此它们在全文搜索查询中没有用处。
  • 为什么“如何”是噪音病房?我也用其他选项对此进行了测试。相同的警告信息。
  • 快速谷歌会解释一个干扰词。
  • 嗨 Dale,我如何更新干扰词?
  • 嗨 angus,我看到这篇文章与您在此处所做的工作非常相似(修改干扰词列表),stackoverflow.com/questions/48815415/…

标签: sql-server


【解决方案1】:
select * from Search where Content like '%How%'

上面的查询应该会给你你期望的结果

【讨论】:

  • 然而,这不会是 SARGable 并且会拾取其他内容,例如 'I like this, however, it's still blue''Howard the Duck';这不太可能。
  • 谢谢 Riyas,但我不想使用 LIKE。所有建议是使用全文搜索
  • 使用全文搜索的重点是处理加速like根本无法处理的情况。
猜你喜欢
  • 2018-07-26
  • 1970-01-01
  • 2016-02-14
  • 2010-09-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多