gpt4 book ai didi

SQL Server、ISABOUT、加权项

转载 作者:行者123 更新时间:2023-12-02 13:10:20 26 4
gpt4 key购买 nike

我试图弄清楚加权项在 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com