SQL全文搜索查询?

时间:2011-10-13 12:25:49

标签: sql sql-server-2008 full-text-search full-text-catalog

我正在尝试在登录表上实现全文搜索,当我执行相应的查询时,以下是我的观察结果:

当我执行以下执行全文搜索的查询时,它能够获取近似 1665行

select * from t_user where contains(LOGIN_ID, '"*david*" )

但是在使用以下内容实现类似查询而不使用全文搜索时,它返回 1872行

select * from T_USER where LOGIN_ID like '%david%'

当我浏览我的表中的数据时,我得出的结论是,当我使用contains关键字时,它忽略了具有登录ID的行,如 DDAVID_D ,或者我可能会说它只是返回大卫单词分隔的行,如 DAVID_FRANK

有没有办法在单词之间搜索一个单词(比如在DDavidFrank之间搜索David,或者我可以在DDAVIDFRANK中搜索david字符串的长连续单词)以实现全文有效搜索?

2 个答案:

答案 0 :(得分:0)

WHERE FREETEXT(LOGIN_ID, 'david') OR CONTAINS(LOGIN_ID, 'david')"

答案 1 :(得分:0)

尝试此查询:

SELECT * from t_user WHERE CONTAINS(LOGIN_ID, '"david"' )