zoukankan      html  css  js  c++  java
  • Elasticsearch相关度评分_score

    相关度评分 _score 的目的

    是为了将当前查询的结果进行排序,比较不同查询结果的相关度评分没有太大意义。

    _score的计算方式

    score(q,d)  =    # score(q,d) 是文档 d 与查询 q 的相关度评分。   
              · queryNorm(q)      # 查询归一化因子,用来使查询结果之间能够相互比较,但意义不大,因为_score的目的并不是对不同查询进行比较,而是用来对查询结果进行排序
              · coord(q,d)        # 协调因子,对于多词查询,文档里出现的匹配词越多,该值越大。 bool查询也遵循这个规则。Lucene中同义词查询会自动禁用这个值(优秀!)。
              · ∑ (           
                  · tf(t in d)       
                  · idf(t)²      
                  · t.getBoost()     
                  · norm(t,d)    
                ) (t in q)   
    

    原文

    优化查询结果的方法

    1. 设置boost参数在一个查询上、某些索引上
    2. 使用查询结构修改相关度
    3. 使用boosting查询,对包含不想要的词的查询结果进行降级
    4. function_score查询:这个查询可以使两个效果融合:可以仍然根据全文相关度进行排序,但也会同时考虑最新发布文档、流行文档、或接近用户希望价格的产品。
      3.1 field_value_factor:需要有一个专门的字段,存储数值,以这个数值进行调试
      3.2 functions:可以用来对不同搜索词加权
      3.3
  • 相关阅读:
    Python 多线程,文件io
    Python map/reduce函数式编程
    LeetCode 77 组合
    LeetCode 198 打家劫舍
    LeetCode 138 复制带随机指针的链表
    LeetCode 445 两数相加 II
    LeetCode 2 两数相加
    LeetCode 215 数组中的第K个最大元素
    和为S的两个数字
    数组中重复的数字
  • 原文地址:https://www.cnblogs.com/DianeSoHungry/p/8875144.html
Copyright © 2011-2022 走看看