solr:关于dismax的使用情况(转:https://my.oschina.net/momohuang/blog/145379)
来源:互联网 发布:库里总决赛6场数据 编辑:程序博客网 时间:2024/06/02 01:57
首先说说 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
- solr:关于dismax的使用情况(转:https://my.oschina.net/momohuang/blog/145379)
- solr:关于dismax的使用情况
- https://my.oschina.net/lilw/blog/168667(转载)
- https://my.oschina.net/wwnick/blog/750055
- https://my.oschina.net/closeday/blog/297225
- https://my.oschina.net/artshell/blog/323026
- iOS开发正则表达(转:https://my.oschina.net/u/1245365/blog/376517)
- Spring中你不知道的注入方式(https://my.oschina.net/itblog/blog/206481)
- gdb第一次调试使用 my.oschina.net/jl88747653/blog/87732
- asp.net页面指令和事件(转自:http://my.oschina.net/dxf/blog/269)
- PHP_php.ini_说明详解(转载地址:https://my.oschina.net/miaowang/blog/299546)
- angular js摸态框的用法(转载自http://my.oschina.net/u/2332658/blog/491066)
- 挖个新坑:https://my.oschina.net/u/1584895
- http://my.oschina.net/ryanhoo/blog/93801
- http://my.oschina.net/f839903061/blog/85183
- http://my.oschina.net/songxinqiang/blog/192567
- http://my.oschina.net/u/2352897/blog
- 从hiredis使用出core谈谈redis多线程的使用http://my.oschina.net/jungleliu0923/blog/202948
- JSON入门与实战详解 —— JavaScript、Java与JSON互转
- Jackson实现Object对象与Json字符串的互转
- 什么时候可以将神经网络的参数全部初始化为0?
- scan函数函数用法详解
- cocos2d-x android set up error
- solr:关于dismax的使用情况(转:https://my.oschina.net/momohuang/blog/145379)
- Java & json
- 爬取前程无忧python工程师记录一
- 错误日志的收集(ACRA的使用教程)
- Linux--RH134---unit 2 控制对文件的访问
- MySQL数据库基础与安装
- 132.显示手机的运行进程数并显示可用内存
- Spring基础—装配bean(一)
- 物联网传输协议MQTT研究