2019独角兽企业重金招聘Python工程师标准>>>

使用solr,就使用到各种的排序和boost。

在公司的站内搜索引擎,就遇到了排序的问题,各种各样的条件,融合在最后一个分数里面。

开启debugQuery,就可以看到每个document的打分逻辑原理。

比如说,我们的查询是这样的:

 /solr/select?q=ddr&defType=dismax&qf=name^1000+description^100&bf=pow(price,1.5)&debugQuery=true&indent=true 

开启了debugQuery后,获得的结果是这样的:

1.6771803 = (MATCH) sum of:  0.64883727 = (MATCH) max of:  0.64883727 = (MATCH) weight(name:ddr^1000.0 in 6), product of: 0.99999994 = queryWeight(name:ddr^1000.0), product of:  1000.0 = boost  2.446919 = idf(docFreq=3, maxDocs=17)  4.0867718E-4 = queryNorm  0.6488373 = (MATCH) fieldWeight(name:ddr in 6), product of:  1.4142135 = tf(termFreq(name:ddr)=2)  2.446919 = idf(docFreq=3, maxDocs=17)  0.1875 = fieldNorm(field=name, doc=6)  1.028343 = (MATCH) FunctionQuery(pow(float(price),const(1.5))), product of:  2516.272 = pow(float(price)=185.0,const(1.5))  1.0 = boost  4.0867718E-4 = queryNorm

按照这个格式,把你的debugQuery的信息取出来,格式化就得到了。

首先,最上面的分数是这个document的总分:1.6771803

这个分数是怎么来的?

总分 = 字段得分 + 每个FunctionQuery 的得分。

Solr的dismax引擎,会选择一个最高得分的字段,作为该document的基础。

然后通过FunctionQuery进行调整。

加入,被查询的字段有:

productName^100

productDesc^10

那么2者都马努匹配的情况下,productName^100 的得分是0.9 ,productDesc^10的得分是0.8.

取0.9作为分数基底。

然后有2个FunctionQuery,分别是促销排名值0.012,和上架时间排名值0.011

那么这个document的分值= max(0.9 , 0.8) + 0.012 + 0.011 = 0.923

在debug信息中,queryNorm 一般会是个常量,不用管它。

tf   是词条在文本中出现的次数

idf   是词条在文本中的重要性程度

OK,总结到这里。

转载于:https://my.oschina.net/dacoolbaby/blog/353003

Solr debugQuery使用体会相关推荐

  1. 【solr专题之二】配置文件:solr.xml solrConfig.xml schema.xml

    1.关于默认搜索域 If you are using the Lucene query parser, queries that don't specify a field name will use ...

  2. solr 使用自定义的 QueryParser

    https://blog.csdn.net/aaa1117a8w5s6d/article/details/48509521 原文出处:http://blog.chenlb.com/2009/02/us ...

  3. solr管理界面详解

    原文地址:http://blog.csdn.net/zcl_love_wx/article/details/52092098 solr 服务器管理界面可以查看系统状态.solr设置.分词检测.查询索引 ...

  4. 【转载】solr教程,值得刚接触搜索开发人员一看

    转载:http://blog.csdn.net/awj3584/article/details/16963525 Solr调研总结 开发类型 全文检索相关开发 Solr版本 4.2 文件内容 本文介绍 ...

  5. 【solr专题之四】关于VelocityResponseWriter

    一.关于Velocity的基本配置 在Solr中,可以以多种方式返回搜索结果,如单纯的文本回复(XML.JSON.CSV等),也可以返回velocity,js等格式.而VelocityResponse ...

  6. solr模糊查询_《Solr实战》之一

    本文记录笔者在阅读<Solr实战>的读书笔记,将笔者认为重要的内容摘录出来. Solr擅长处理的数据类型 以文本为中心 读主导 文档被读取的次数远大于被创建和更新的次数 面向文档 灵活的模 ...

  7. solr 查询字段唯一值_《Solr实战》之一

    本文记录笔者在阅读<Solr实战>的读书笔记,将笔者认为重要的内容摘录出来. Solr擅长处理的数据类型 以文本为中心 读主导 文档被读取的次数远大于被创建和更新的次数 面向文档 灵活的模 ...

  8. solr教程,值得刚接触搜索开发人员一看(转载:http://blog.csdn.net/awj3584/article/details/16963525)

    Solr调研总结 开发类型 全文检索相关开发 Solr版本 4.2 文件内容 本文介绍solr的功能使用及相关注意事项;主要包括以下内容:环境搭建及调试;两个核心配置文件介绍;维护索引;查询索引,和在 ...

  9. Solr调研总结(很详细很全面)

    Solr调研总结 开发类型 全文检索相关开发 Solr版本 4.2 文件内容 本文介绍solr的功能使用及相关注意事项;主要包括以下内容:环境搭建及调试;两个核心配置文件介绍;维护索引;查询索引,和在 ...

最新文章

  1. 宏基因组序列物种分类之kraken 1/2和Bracken的使用
  2. 消除软硬件鸿沟,芯客网完美支持智能硬件在移动互联时代的爆发
  3. BXUG第11期活动
  4. 师范生计算机硬件技能怎么填,浅析对师范生教育技术能力培养与发展问题的思考的论文...
  5. 视觉中国网站恢复试运营 此前曾两次遭整改
  6. ubuntu 英伟达显卡驱动异常
  7. 自定义checkbox大小(注:用CSS的ZOOM属性 )
  8. asp.net 缓存Cache的使用总结
  9. 基于 MVP+RxJava2+Retrofit2 的应用—熊猫眼
  10. java stax_浅谈stax
  11. 仿网易云音乐移动端html模板,使用jQuery仿制网易云音乐移动端
  12. MacBook双开微信原来这么简单
  13. BT5R3安装及汉化
  14. manjaro linux无线网卡,为 Manjaro 18.1.4 配置无线网卡
  15. 计算机系学生橱窗分析结果怎么写,2015年高职学生职业生涯规划书
  16. Unity3D音频播放 动态加载组件
  17. SEO分析和方案设计
  18. [网络流] Topcoder SRM556DIV. OldBridges
  19. matlab读不了视频,matlab读视频的问题
  20. python 计算器 loop_python计算器实现 Yeah

热门文章

  1. FPGA之道(23)VHDL的signal、variable与constant
  2. HDLBits 系列(38)值得一看的状态机设计题目
  3. 【 FPGA 】状态机的模型之Mealy型状态机
  4. 通过仿真和综合认识T触发器(Verilog HDL语言描述T触发器)
  5. 【转】Java finally语句到底是在return之前还是之后执行?
  6. DotNet并行计算的使用误区(二)
  7. 人工智能机器视觉的未来发展趋势
  8. 系统安全漏洞成云安全主威胁
  9. ThinkPHP实现静态缓存和动态缓存
  10. Vi/Vim查找替换使用方法