我试图弄清楚加密术语在SQL SERVER中的ISABOUT查询中的确切工作方式.这是我目前所处的位置:
每个查询都返回以下行:
QUERY 1(重量1): 初始排名
SELECT * FROM CONTAINSTABLE(documentParts, title, 'ISABOUT ("e" weight (1) ) ') ORDER BY RANK DESC, [KEY]
KEY RANK
306342 249
272619 156
221557 114
Run Code Online (Sandbox Code Playgroud)
QUERY 2(权重0.8): 排名增加,保留初始订单
SELECT * FROM CONTAINSTABLE(documentParts, title, 'ISABOUT ("e" weight (0.8) ) ') ORDER BY RANK DESC, [KEY]
KEY RANK
306342 321
272619 201
221557 146
Run Code Online (Sandbox Code Playgroud)
QUERY 3(权重0.2): 排名增加,保留初始订单
SELECT * FROM CONTAINSTABLE(documentParts, title, 'ISABOUT ("e" weight (0.2) ) ') ORDER BY RANK DESC, [KEY]
KEY RANK
306342 998 …Run Code Online (Sandbox Code Playgroud) 在MS SQL全文搜索中,我在查询中使用ISABOUT.
例如,这应该返回前10 ProductIDs(PK)与表中的RANK字段ProductDetails
SELECT *
FROM CONTAINSTABLE( ProductDetails, *, ISABOUT("Nikon" WEIGHT (1.0), "Cameras" Weight(0.9)), 10 )
Run Code Online (Sandbox Code Playgroud)
但是,根据SQL文档 ISABOUT不推荐使用.
所以,我有两个问题:
ISABOUT被替换?SQL Command吗?(IOW,只是把搜索短语"尼康相机"变得更好?)我原本试图在这里完成的是将第一个单词加权最高,然后加第二个单词降低,然后继续降低到0.5,我将其余单词排在0.5.
我的逻辑(也许是有缺陷的)是人们最相关的搜索词通常发生在短语的开头附近(英语).
谢谢大家的时间......