`
dacoolbaby
  • 浏览: 1267214 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Solr debugQuery使用体会

    博客分类:
  • solr
阅读更多

使用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,总结到这里。

 

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    solr 的使用及安装

    本文将深入讲解 Solr 的使用及安装过程。 一、Solr 简介 Solr 基于 Lucene 库,提供了一个高度可配置和可扩展的平台,用于处理和索引大量数据,支持多种数据源,如文件、数据库等。其主要特性包括: 1. **全文搜索...

    solr6.5使用的IK分词

    "solr6.5使用的IK分词"就是一个针对Solr 6.5版本的中文分词解决方案。 **IK分词器** IK分词器(Intelligent Chinese Analyzer)是由Lucene社区开发的一款高性能的中文分词工具,适用于Java环境。它的主要目标是为...

    Solr(Cloudera)使用手册

    ### Solr(Cloudera)使用手册 #### 一、创建Collection与管理实例 在使用Solr(Cloudera)时,创建Collection是基本的操作之一。Collection是Solr中的数据存储单元,相当于关系数据库中的表。 ##### 创建路径与实例 ...

    Solr入门使用详解.zip

    本教程将深入探讨Solr的基本概念、安装配置、索引管理、查询操作以及solrJ库的使用,同时也涉及到了IK分词器的详细应用。 首先,让我们了解一下Solr的核心概念。Solr是基于Lucene的搜索服务器,它可以快速地处理...

    solr-dataimport-scheduler.jar 可使用于solr7.x版本

    要使用solr-dataimport-scheduler.jar,首先需要将该jar包部署到Solr服务器的lib目录下,这样Solr启动时会自动加载这个组件。然后,在Solr的配置文件(如solrconfig.xml)中,你需要定义一个DIH的配置,包括数据源...

    solr5.5.4使用文档

    ### Solr 5.5.4 使用文档 #### 一、环境配置与部署步骤 **1.1 环境需求** - **JDK**: 1.7 或以上版本。 - **Tomcat**: 8 或以上版本。 - **Solr**: 5.5.4 版本。 - **SolrJ**: 5.5.4 版本。 **1.2 部署步骤** 1...

    lucene,solr的使用

    ### Lucene与Solr的使用详解 #### 一、Lucene概述 Lucene是一款高性能、全功能的文本搜索引擎库,由Java语言编写而成。它能够为应用系统提供强大的全文检索能力,是当前最为流行的开源搜索库之一。由于其高度可...

    solr5.5使用的Ik分词jar及mysql数据同步用到的jar

    solr5.5使用的IK分词IKAnalyzer2012FF_u2.jar包,亲测可用。以及solr5.5同mysql数据同步用到的solr-dataimportscheduler-1.1.1.jar包,亲测可用。

    solr的安装使用步骤

    ### Solr的安装使用步骤详解 #### Solr概述与特性 **Solr** 是 Apache 下的一个顶级开源项目,它基于 **Lucene** 进行构建,提供了强大的全文搜索能力。相较于 Lucene,Solr 提供了更为丰富的查询语言支持,并且...

    easynet.solr开发与使用

    《easynet.solr开发与使用》 在现代信息技术领域,搜索引擎已经成为不可或缺的一部分,而Apache Solr作为一款强大的开源搜索引擎,被广泛应用于各种数据检索场景。为了方便开发者更高效地集成和操作Solr,Easynet...

    最新版linux solr-8.8.2.tgz

    为了方便使用 Solr 的命令行工具,可以将 Solr 的 bin 目录添加到系统的 PATH 环境变量中。例如,在 `.bashrc` 或 `.bash_profile` 文件中添加: ``` export SOLR_HOME=/path/to/solr-8.8.2 export PATH=$PATH:$...

    lucene简单介绍及solr搭建使用

    标题“lucene简单介绍及solr搭建使用”涉及了两个主要的开源搜索技术:Lucene和Solr。Lucene是Java开发的一个全文检索库,而Solr则是基于Lucene构建的企业级搜索平台,提供了更高级的功能和管理界面。 **Lucene简介...

    solr的安装与使用

    Solr安装与使用 Solr是一款功能强大的搜索引擎,能够帮助我们快速搭建企业搜索平台。在本文中,我们将详细介绍Solr的安装和使用过程。 一、安装Solr 首先,我们需要下载Solr的安装包。这里我们使用的是Solr 1.3...

    使用docker 部署solr

    centos7 环境 安装docker 并在docker 中部署solr 并使用

    solr使用和原理

    solr使用和原理 简单明了的介绍了solr的使用和原理,及其部署方式,适合初学者第一次部署

    solr5.5.4部署及使用

    在本文档中,我们将详细介绍如何部署和使用 Solr 5.5.4 版本,包括两种常见的部署方式:Jetty 和 Tomcat,并涉及到中文分词器IKAnalyzer的集成以及对Word文档的支持。 首先,我们需要准备合适的环境,这里要求的是...

    Apache Solr 搜索使用文档

    - **高亮显示**:Solr 能够在搜索结果中自动高亮显示匹配的关键词,提高用户体验。 - **数据库接口**:除了支持文本文件外,Solr 还能处理来自数据库的数据源,提供了一种从数据库到索引的无缝连接方案。 - **电子...

    solr在java中使用总结

    ### Solr在Java中的使用总结 #### 一、Solr简介 Solr是一个高性能的全文搜索引擎,基于Apache Lucene开发,使用Java 5编写。它不仅继承了Lucene的强大功能,还提供了更丰富的查询语言以及更好的性能优化。Solr具备...

    Solr基础使用

    ### Solr基础使用知识点 #### 一、需求分析与实现方法 **1.1 需求** 在电商网站中,商品信息搜索是一项至关重要的功能。用户能够通过输入关键字、选择分类或设定价格范围来查找商品。此外,还支持按照价格进行排序...

Global site tag (gtag.js) - Google Analytics