2

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

当我执行以下实现全文搜索的查询时,它能够获取大约1665 行

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

但是在不使用全文搜索的情况下实现类似查询时,它返回1872 行

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

当我浏览将数据扔到我的表中时,我得出一个结论,当我使用 contains 关键字时,它忽略了具有像DDAVID_D这样的登录 ID 的行,或者我可能会说它只返回像DAVID_FRANK那样分隔 david 单词的行.

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

4

2 回答 2

0

尝试

WHERE FREETEXT(LOGIN_ID, 'david') OR CONTAINS(LOGIN_ID, 'david')"
于 2011-10-13T12:54:09.707 回答
0

试试这个查询:

SELECT * from t_user WHERE CONTAINS(LOGIN_ID, '"david"' )
于 2020-05-22T08:31:36.123 回答