solr:关于dismax的使用情况(转:https://my.oschina.net/momohuang/blog/145379)

首先说说 dismax这个功能,它是基于lucene的DisjunctionMaxQuery去 扩展的,就是说,实际上用到的就是DisjunctionMaxQuery的这个查询类。查询api,可以知道是 对查询的几个域中,取最大的打分,而不是想boolean查询那样,要几个域的查询的分数叠加。

1、q.alt, 没有看明白

2、qf对默认查询增加权重比值,比如:fieldOne^1.9 fieldTwo fieldThree^5 ,值越大权重越大

也可以是  

1、bf内字段必须是索引的,该出填写的是查询函数   。提供一个强大的功能就是使用用户设置的公式来对文档的score进行计算。这里所说的公式也就是solr的function queries,使用bf参数来操作score。edismax支持boost参数来进行function query。可以使用bf或boost多次。bf的函数查看solr api文档http://wiki.apache.org/solr/FunctionQuery

最终的排序打分,可以根据 bf打分与 lucene的sorce 相加,得到最后打分

2、qf

3、mm , mm=2 就是有两个符合搜索的词 就返回改条 .对应着lucene的类BooleanScorer2

eg:

性别:女  MUST
年龄:<25  SHOULD
胸围: >C should
收入: >10000 should

要符合两个条件才会被 hit,要不直接去掉

4、pf查询字段, 就是phrase fields的缩写, 这样在schema不用制定默认字段
5、ps,phrase slop, 坡度 ,相同于 编辑距离的值,

eg: document:"周杰伦“,query:”杰伦周“,这两个词,如果用 phrasequery,但 slop=2的时候,搜索不出来,当,slop=3的时候,可以搜索出来

6、qs

7、

8、tie:DisjunctionMaxQuery q = new DisjunctionMaxQuery(tie);

 这个查询是相当于布尔查询的  
不过里面的关系只能是should  
 最后的分数不是相加,而是取最大值 

9、bq,就是boost queries ,bq参数可以用来指定多个查询,类似于automatic phrase boost

当是多个查询的时候,就是 BooleanClause.Occur.SHOULD查询,只有仅有一个查询并且

 if (1.0f == f.getBoost() && f instanceof BooleanQuery)  的时候,才是保留着原先的查询。

具体见:DisMaxQParser

10、uf

随便说一下 各个Query的不同做法

1、TermQuery,只是简单的按term 去查询?

2、BooleanQuery,布尔查询 ,与或?

3、RangeQuery

4、PrefixQuery就是使用前缀来进行查找的。

5、多关键字的搜索—PhraseQuery

6、FuzzyQuery是一种模糊查询,它可以简单地识别两个相近的词语。

7、使用通配符搜索—WildcardQuery

8、DisjunctionMaxQuery

时间: 2024-09-09 02:08:20

solr:关于dismax的使用情况(转:https://my.oschina.net/momohuang/blog/145379)的相关文章

solr 自定义 dismax查询方式

1.在solrconfig.xml中增加 Xml代码   <queryParser name="imdismax"           class="com.szhtp.search.parse.IMDisMaxQParserPlugin" />   <requestHandler name="imdismax" class="solr.SearchHandler">           <lst

Solr所有的查询解析器Query Parsers(转:http://blog.csdn.net/jiangchao858/article/details/53859731)

摘要: Solr除了支持常见的解析器之外,还有一些特殊用途的解析器,为了便于之后查阅,总结一下.本文整理自Solr官方文档. 解析器 说明 Standard Query Parser Solr的标准查询解析器Standard Query Parser DisMax Query Parser Solr的查询解析器DisMax Query Parser Extended DisMax Query Parser Solr的查询解析器The Extended DisMax Query Parser Bl

Flume + Solr + log4j搭建web日志采集系统

前言 很多web应用会选择ELK来做日志采集系统,这里选用Flume,一方面是因为熟悉整个Hadoop框架,另一方面,Flume也有很多的优点. 关于Apache Hadoop Ecosystem 请点击这里. Cloudera 官方的教程也是基于这个例子开始的,get-started-with-hadoop-tutorial 并且假设我们已经了解Flume(agent, Source, Channel, Sink) , Morphline (ETL), Solr (全文检索),如果都没有了解,

Spring Boot工程支持HTTP和HTTPS,HTTP重定向HTTPS

本文试图以通俗易通的方式介绍Https的工作原理,不纠结具体的术语,不考证严格的流程.我相信弄懂了原理之后,到了具体操作和实现的时候,方向就不会错,然后条条大路通罗马.阅读文本需要提前大致了解对称加密.非对称加密.信息认证等密码学知识.如果你不太了解,可以阅读Erlang发明人Joe Armstrong最近写的Cryptography Tutorial.大牛出品,通俗易懂,强力推荐. Https涉及到的主体 客户端.通常是浏览器(Chrome.IE.FireFox等),也可以自己编写的各种语言的

关于博客笔记大汇总,持续更新迭代

目录介绍 1.关于知识图谱 1.1 关于Android知识图谱 1.2 关于博客类型知识图谱 1.3 关于印象笔记思维导图 2.关于开源的项目[13个] 2.1 开源项目思维导图 2.2 开源项目说明 2.3 开源项目迭代更新说明 3.关于技术博客内容[25篇] 3.1 技术博客思维导图 3.2 技术博客说明 3.3 技术博客更新记录日志 4.关于生活博客内容[12篇] 4.1 生活博客思维导图 4.2 生活博客说明 4.3 生活博客更新记录日志 5.关于喜马拉雅音频[139个] 5.1 喜马拉

设计模式之四:访问者模式

目录介绍 1.访问者模式介绍 2.访问者模式定义 3.访问者模式UML图 4.访问者模式简单案例 5.访问者模式之Android源码分析 5.1 注解简单介绍 5.2 注解与访问者模式关系 5.3 注解与性能的关系 6.访问者模式之实践 6.1 介绍 6.2 编译期注解之ButterKnife 6.3 编译期注解之Dagger2 6.4 自己写个简单支持View的ID注入的工具 6.4.0 基本逻辑思路 7.注解之ButterKnife源码分析 7.0 简单工作流程 7.1 首先看看Bind注解

EventBus用法及源码解析

EventBus用法及源码解析 目录介绍 1.EventBus简介 1.1 EventBus的三要素 1.2 EventBus的四种ThreadMode(线程模型) 1.3 EventBus怎么调用 2.EventBus使用 2.1 最简单的使用 3.EventBus注册源码解析 3.1 EventBus.getDefault()获取对象 3.2 register(this)注册源码解析 3.2.1 首先看register(this)源码 3.2.2 接下来看findSubscriberMeth

设计模式之二:Builder模式

设计模式之二:Builder模式目录介绍 0.关于Builder模式案例下载 1.Builder模式介绍 2.Builder模式使用场景 3.Builder模式简单案例 3.1 Builder模式UML图(摘自网络) 3.2 在<Android源码设计模式>这本书上,介绍经典Builder模式中,包括 3.3 Product角色 3.4 Builder : 抽象Builder类,规范产品组建,一般是由子类实现具体的组建过程 3.5 ConcreteBuilder : 具体的Builder类 3

Android 经典笔记七 全局弹窗Dialog

目录介绍 1.全局弹窗分析 2.全局弹窗必要条件 3.全局弹窗实现方式 3.1. 利用系统弹出dialog 3.2. 获取WindowManager,直接添加view 3.3. 在服务里,获取栈顶的Activity,弹窗 4.Dialog实现全局Loading加载框 4.1. 自定义Loading类 4.2. 给自定义的Dialog添加自定义属性 4.3. Loading布局 4.4. 开始使用 5.遇到的问题 5.1. 权限问题 5.2. Unable to add window 6.其他说明