- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我试图弄清楚加权项在 SQL SERVER 的 ISABOUT 查询中到底是如何工作的。
这是我现在所在的位置:
每个查询返回以下行:
查询 1(权重 1): 初始排名
SELECT * FROM CONTAINSTABLE(documentParts, title, 'ISABOUT ("e" weight (1) ) ') ORDER BY RANK DESC, [KEY]
KEY RANK
306342 249
272619 156
221557 114
查询 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
查询 3(权重 0.2): 排名增加,初始顺序保留
SELECT * FROM CONTAINSTABLE(documentParts, title, 'ISABOUT ("e" weight (0.2) ) ') ORDER BY RANK DESC, [KEY]
KEY RANK
306342 998
272619 877
221557 692
查询 4(权重 0.17): 排名下降,最佳匹配现在排在最后,这些术语的反向行为从 0.17 开始
SELECT * FROM CONTAINSTABLE(documentParts, title, 'ISABOUT ("e" weight (0.17) ) ') ORDER BY RANK DESC, [KEY]
KEY RANK
272619 960
221557 958
306342 802
查询 5(权重 0.16): 排名增加,最佳匹配现在是第二
SELECT * FROM CONTAINSTABLE(documentParts, title, 'ISABOUT ("e" weight (0.17) ) ') ORDER BY RANK DESC, [KEY]
KEY RANK
272619 978
306342 935
221557 841
查询 6(权重 0.01): 排名下降,最佳匹配再次排在最后
SELECT * FROM CONTAINSTABLE(documentParts, title, 'ISABOUT ("e" weight (0.01) ) ') ORDER BY RANK DESC, [KEY]
KEY RANK
221557 105
272619 77
306342 50
权重 1 的最佳匹配排名为 249,当权重下降到 0.2 时,最佳匹配排名增加到 998。从 0.2 到 0.17 排名下降,从 0.16 结果反转(重现此行为的权重值取决于术语,可能还取决于搜索的列...)
似乎在某个点上,权重的意思是相反的,比如“不包括这个术语”。 您对这种行为有什么解释吗? 为什么权重下降时排名会上升? 为什么排名会在某个点后下降,直到结果反转?您如何预测这个点?
当用户搜索创建以下查询的内容时,我使用自定义“断词器”:
CONTAINSTABLE(documentParts, title,
'ISABOUT (
"wordA wordB wordC" weight (0.8),
"wordA*" NEAR "wordB*" NEAR "wordC*" weight (0.6),
"wordA*" weight (0.1),
"wordB*" weight (0.1),
"wordC*" weight (0.1),
) ')
我可以期待 0.1 个字的排名很高吗?
以下查询与上面的查询相同吗?我是否会期望 0.1 的排名出现一些奇怪的行为?
CONTAINSTABLE(documentParts, title, '
ISABOUT ( "wordA wordB wordC" weight (0.8) ),
OR ISABOUT ( "wordA*" NEAR "wordB*" NEAR "wordC*" weight (0.6) ),
OR ISABOUT ( "wordA*" weight (0.1) ),
OR ISABOUT ( "wordB*" weight (0.1) ),
OR ISABOUT ( "wordC*" weight (0.1) ),
')
最佳答案
根据我的经验,当权重加起来为 1 时,我得到了最好的结果。
CONTAINSTABLE(documentParts, content,
'ISABOUT (
"wordA wordB wordC" weight (0.5),
"wordA*" NEAR "wordB*" NEAR "wordC*" weight (0.2),
"wordA*" weight (0.1),
"wordB*" weight (0.1),
"wordC*" weight (0.1)
) ')
关于SQL Server、ISABOUT、加权项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13700320/
我试图弄清楚加权项在 SQL SERVER 的 ISABOUT 查询中到底是如何工作的。 这是我现在所在的位置: 每个查询返回以下行: 查询 1(权重 1): 初始排名 SELECT * FROM C
在 MS SQL 全文搜索中,我在查询中使用 ISABOUT。 例如,这应返回 ProductDetails 表中带有 RANK 字段的前 10 个 ProductID (PK) SELECT * F
我正在尝试使用存储过程创建一个表,该表通过获取主题名称并使用与该主题名称关联的关键字和权重来确定帖子的排名方式来对帖子进行排名。我一直在尝试使用 CONTAINSTABLE 和 ISABOUT,但在将
我是一名优秀的程序员,十分优秀!