排名计算问题

计算排名的过程,取决于一系列因素。不同语言的断字符对文本进行的词汇切分也不同。例如,字符串“dog-house”可以被一种断字符断为“dog”和“house”而被另一种断字符断为“dog-house”。这意味着匹配和排名将根据所指定语言而有所不同,因为不仅词不同,而且文档长度也不同。文档长度的差异可能会影响所有查询的排名。

诸如 IndexRowCount 之类的统计信息可能会大不相同。例如,如果一个目录的主索引有二十亿行,那么对一个新文档的索引将被编制为内存中的中间索引,而基于该内存中索引内的文档数对该文档的排名可能与主索引中的文档排名不同。因此,建议在完成产生大量要创建索引或重新创建索引的行的任意填充后,使用 ALTER FULLTEXT CATALOG ... REORGANIZE Transact-SQL 语句将这些索引合并为一个主索引。全文引擎也会根据参数(例如中间索引的数目和大小)自动合并索引。

MaxOccurrence 值被规范化到 32 个范围的其中一个内。这意味着,比方说,50 个词长的文档与 100 个词长的文档的处理方式相同。下面是用于规范化的表。由于这两个文档的长度位于相邻表值 32 与 128 之间的范围内,因此将认为它们具有相同的有效长度 128 (32 < docLength <= 128)。

复制代码
{ 16, 32, 128, 256, 512, 725, 1024, 1450, 2048, 2896, 4096, 5792, 8192, 11585,
16384, 23170, 28000, 32768, 39554, 46340, 55938, 65536, 92681, 131072, 185363,
262144, 370727, 524288, 741455, 1048576, 2097152, 4194304 };

CONTAINSTABLE 排名

排名使用以下算法:

复制代码
StatisticalWeight = Log2( ( 2 + IndexedRowCount ) / KeyRowCount )
Rank = min( MaxQueryRank, HitCount * 16 * StatisticalWeight / MaxOccurrence )

短语匹配项的排名方式与各个键类似,只不过要估计 KeyRowCount(包含该短语的行数),并且此值可能会比实际值大。

ISABOUT 排名

CONTAINSTABLE 使用 ISABOUT 选项支持查询加权词。按照传统信息检索系统的说法,ISABOUT 表示向量空间查询。所使用的默认排名算法为广为人知的公式 Jaccard。将根据查询中的每个词计算排名,然后按如下描述将这些排名相结合。

复制代码
ContainsRank = same formula used for CONTAINSTABLE ranking of a single term (above).
Weight = the weight specified in the query for each term. Default weight is 1.
WeightedSum = Σ[key=1 to n] ContainsRankKey * WeightKey
Rank =  ( MaxQueryRank * WeightedSum ) / ( ( Σ[key=1 to n] ContainsRankKey^2 ) + ( Σ[key=1 to n] WeightKey^2 ) - ( WeightedSum ) )

FREETEXTTABLE 排名

排名基于 OKAPI BM25 排名公式计算。FREETEXTTABLE 查询将通过派生词(原始查询词的变形)向查询中添加词,这些词将被作为单独的、与派生出它们的词没有特殊联系的词来处理。同义词库功能派生出的同义词将被当作单独的、具有同等加权值的词来处理。查询中的每个词都会对排名产生影响。

复制代码
Rank = Σ[Terms in Query] w ( ( ( k1 + 1 ) tf ) / ( K + tf ) ) * ( ( k3 + 1 ) qtf / ( k3 + qtf ) ) )
Where:
w is the Robertson-Sparck Jones weight.
In simplified form, w is defined as:
w = log10 ( ( ( r + 0.5 ) * ( N – R + r + 0.5 ) ) / ( ( R – r + 0.5 ) * ( n – r + 0.5 ) )
N is the number of indexed rows for the property being queried.
n is the number of rows containing the word.
K is ( k1 * ( ( 1 – b ) + ( b * dl / avdl ) ) ).
dl is the property length, in word occurrences.
avdl is the average length of the property being queried, in word occurrences.
k1, b, and k3 are the constants 1.2, 0.75, and 8.0, respectively.
tf is the frequency of the word in the queried property in a specific row.
qtf is the frequency of the term in the query. 

全文索引 排名计算问题相关推荐

  1. 博客园今天将排名计算错误了

    20190309,博客园今天将排名计算错误了~~~~~~~~~~~~~ 更新20190311 今天彻底没有积分和排名了 我做了什么吗? ? 忍不住,吐槽一下博客园的排版 今天觉得以前一遍随笔中,少了点 ...

  2. 排名方法可用于分数排名,购买量排名等排名计算

    文章目录 一.排名算法 1.代码如下: 一.排名算法 1.代码如下: package com.yunhenedu.core.utils.rank;import com.yunhenedu.core.e ...

  3. 瑞丽的SQL-基于窗体的排名计算

    在SQL Server中,窗体被定义为用户指定的一组行. 之所以要提出窗体这个概念,由于这种基于窗体或分区的又一次计算在实际工作应用范围比較广泛.比如.假设我们要对每一个班级中的学生按成绩进行排序,在 ...

  4. 百度贴吧排名计算方式

    排名模拟公式:历史帖子数×a+新增帖子数×b+∑(单一帖子浏览量÷该帖回复总数)×c+独立ip数×d=总人气值 其中,a.b.c.d为系数,如果系数为1,则×1:(单一帖子浏览量÷该帖回复总数)这个比 ...

  5. 利用GEPHI做网页排名计算

    老帅 20150801 http://blog.csdn.net/shuaihj 1.下载httpGraph插件 2.新建一个httpGraph监控 3.配置浏览器,使用httpGraph做代理,使其 ...

  6. Java计算排名通用方法

    //该方法可用于分数排名,购买量排名等排名计算操作//传入需要处理的集合和数字public int getClassRank(List<BuyerCountRanking> list,do ...

  7. 计算排名的java算法_排名算法计算

    场景:A表,汇总数据计算目标表. 字段 类型 说明 备注 type 枚举值 数据类别 有多种数据类型 num 浮点数 积分值 index 长整型 排名位置 uuid 字符型 业务唯一键 一个用户的唯一 ...

  8. excel计算班级总分排名_在Excel中计算排名

    excel计算班级总分排名 To do some research on sorting, I hauled one of the big, dusty Excel books off my shel ...

  9. AI 版 Nature Index 排名,两种结果折射中国 AI 实力软肋

    智源导读:12月10日,Nature Index 发布了其 AI 增刊(Nature Index AI supplement),该刊分别使用了Nature Index(自然指数)数据和规模更大的Dim ...

最新文章

  1. 获取前台HTML控件的值(select)
  2. 原创--DataGrid自动分页例子,通过存储过程
  3. 【BZOJ2438】杀人游戏,tarjan缩点+简单的概率计算
  4. Python基础——yield的使用与解释
  5. Deskreen 将 Web 浏览器变为第二屏幕
  6. 1046 划拳 (15 分)—PAT (Basic Level) Practice (中文)
  7. stm32for循环几个机械周期_带你了解包装机械设备的可调度性分析
  8. 关于Xcode的Other Linker Flags
  9. 超详细!一份给零基础新手的插画设计自学指南
  10. 水彩风建筑效果图制作教程
  11. 大众点评全球吃货地图 五一海外游神器
  12. U盘产生快捷方式病毒
  13. 3D建模教程讲解!PBR场景制作破损的图书馆
  14. TXT文件编码格式解析
  15. php 可以将图片分类吗,PHP图片处理教程.ppt
  16. 仿酷狗音乐播放器已开源!
  17. 服务器能用usb pe安装win7系统,巧用U盘在win8PE下安装win7系统的教程
  18. 高帧率扑克牌识别技术详解一(可用于车牌识别,字符识别,人脸检测,验证码识别等等成熟领域)
  19. android穿山甲广告位id,Android自渲染Draw广告
  20. day03-数据库概念mongodb使用数据库CLUD操作

热门文章

  1. 计算机视觉与深度学习 | 开源SLAM、视觉里程计综述(SLAM、Visual Odometry)
  2. 未来的计算机作文2000字,未来的模样2000字作文
  3. php命名空间规则解析及高级功能,PHP命名空间解析规则
  4. 工业用微型计算机笔记(5)-指令系统(2)
  5. access开发精要(13)-货币与数字类型格式(1)
  6. 【机器学习】模型又线上线下不一致怎么办?
  7. GitHub标星14k:超详细的人工智能专家路线图
  8. 【机器学习基础】对样本不均衡的处理
  9. 【机器学习】在机器学习中处理大量数据!
  10. Ubuntu 20.04 LTS/RTX30XX显卡 快速配置深度学习环境(一行命令)