码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 11.ElasticSearch系列之搜索相关性算分机制


    1. 相关性和相关性算分
    1.1 相关性
    • 搜索的相关性算分,描述了一个文档和查询语句匹配的程度。ES会对每个匹配查询条件的结果进行算分_score
    • 打分的本质是排序,需要把最符合用户需求的文档排在最前面。ES5之前,默认的相关性算分是TF-IDF,现在采用BM 25
    2. 词频TF
    • Term Frequency: 检索词在一篇文档中出现的频率
      • 检索词出现的次数除以文档的总字数
    • 度量一条查询和结果文档相关性的简单方法:将搜索中每个词的TF进行相加
      • TF(区块链) + TF(的) + TF(应用)
    • Stop Word
      • ‘的’在文档中出现了很多次,但对贡献相关度几乎没有作用,不应考虑它们的TF
    3. 逆文档频率
    • DF: 检索词在所有文档中出现的频率
      • “区块链”在相对比较少的文档中出现
      • “应用”在相对较多的文档中出现
      • “的”在大量的文档中出现
    • Inverse Document Frequency: 简单说=log(全部文档数/检索词出现过的文档总数)
    • TF-IDF的本质就是将TF求和变成了加权求和

    TF(区块链)*IDF(区块链) + TF(的)*IDF(的) + TF(应用)*IDF(应用)

    4. Lucene中的TF-IDF评分公式

    在这里插入图片描述

    5. BM 25
    • 从ES5开始,默认算法改为BM 25
    • 和TF-IDF相比,当TF无限增加时,BM 25算分会趋于一个数值
    6. 查询权限提升与降低
    // boost > 1 打分提升 0 < boost < 1 打分降低  boost < 0 或 negative_boost 贡献负分
    GET kibana_sample_data_flights/_search
    {
      "explain": true, 
      "query": {
        "boosting": {
          "positive": {
            "term": {
              "DestCountry": {
                "value": "IT",
                "boost": 2
              }
            }
          }, 
          "negative": {
            "range": {
              "AvgTicketPrice": {
                "gte": 800
              }
            }
          }, 
          "negative_boost": 0.2
        }
      }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25

    欢迎关注公众号算法小生或沈健的技术博客

  • 相关阅读:
    Explaining Deepfake Detection by Analysing Image Matching 翻译
    Unity制作影视互动游戏视频加密方案分享
    时序预测 | MATLAB实现POA-CNN-GRU鹈鹕算法优化卷积门控循环单元时间序列预测
    js 判断数据类型
    MySQL8.0优化 - 锁 - 从数据操作的类型划分:读锁、写锁
    3种工厂模式
    缓存穿透、雪崩与击穿
    Linux-Stream内存带宽及MLC内存延迟性能测试方法
    Python py文件打包成 exe文件
    Flutter高仿微信-第33篇-单聊-图片
  • 原文地址:https://blog.csdn.net/SJshenjian/article/details/127434901
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号