solr 相似查询-MoreLikeThis
参考文档:
在solr中有两种方式实现MoreLikeThis:
第一种:SearchHandler中的MoreLikeThisComponent,MoreLikeThis以组件的身份出现,适于简单应用。
第二种:MoreLikeThisHandler,MoreLikeThis作为一个单独的Handler来处理,可以应用过滤等较复杂操作
1、采用相似查询的field的存储方式最好采用TermVectors方式,如果field没有采用TermVectors方式,MoreLikeThis将会从store存储中生成terms。
<field name="cat" ... termVectors="true" />
2、参数说明:
- mlt.fl :设置相似查询字段,最好采用TermVectors存储。
- mlt.mintf :最小分词频率,源文档中小于该频率的分词将被忽略掉。tf:分词后的词在该文档中的频率
- mlt.mindf : 最小文档频率,该词所在文档的个数小于这个值时将不用于相似判断。df:该词所在文档的个数。
- mlt.minwl :词的最小长度,当词的长度小于该值时不用于相似判断。
- mlt.maxwl :词的最大长度,当词的长度大于该值时不用于相似判断。
- mlt.maxqt :构造相似查询的terms的最大数量。
- mlt : true ,开启相似查询。
- mlt.count :为每一个相似查询结果返回指定数量的相似文档。
- mlt.boost :相似查询是否开启加权功能。true/false
- mlt.qf :相似查询field字段加权设置。
如:mlt.qf=text^0.5 features^1.0 name^1.2
或者:
<str name="mlt.qf">
text^0.5 features^1.0 name^1.2 sku^1.5 id^10.0 manu^1.1 cat^1.4
title^10.0 description^5.0 keywords^5.0 author^2.0 resourcename^1.0
</str>
第一种方法:morelikeThis组件为response中的每一个document返回相似查询文档,也许这应该叫做"MoreLikeThese"。
例子:
第二种方法:当你只需要相似查询的相关信息时,可以使用MoreLikeThisHandler。
MoreLikeThisHandler具有以下参数:
|
rows |
控制返回结果的最大数量 |
|
mlt.match.include |
结果集中是否包含原始的文档 |
|
mlt.match.offset |
By default, the MoreLikeThis query operates on the first result for 'q' |
|
mlt.interestingTerms |
值:"list", "details", "none" --显示相似查询中使用到的相关的terms。这些terms时最高评分的terms。如果选择'details',将会显示每个term的权值。 |
见MoreLikeThis额外的输入参数。
MoreLikeThisHandler同样也可以使用ContentStream来查找相似文档。它将会从发送过来的文本中抽取相关terms。
示例:
<requestHandler name="/mlt" class="solr.MoreLikeThisHandler">
<lst name="defaults">
<str name="mlt.fl">title</str>
<str name="mlt.mintf">1</str>
<str name="mlt.minwl">2</str>
<int name="rows">3</int>
</lst>
</requestHandler>
<requestHandler name="/mlt" class="solr.MoreLikeThisHandler">
<lst name="defaults">
<str name="wt">json</str>
<str name="fl">id,dept_id,dem_name,dem_dept_id,dem_desc</str>
<str name="mlt.qf">
dem_name^2.0 dem_desc^1.0
</str>
<str name="mlt.fl">dem_name,dem_desc</str>
<str name="mlt.match.include">false</str>
<str name="mlt.mintf">1</str>
<str name="mlt.mindf">1</str>
<str name="mlt.minwl">2</str>
<int name="rows">3</int>
</lst> </requestHandler>
其中<lst name="defaults"> 时查询时默认的参数值,可有可无。
简单例子:
http://localhost:8983/solr/mlt?q=id:UTF8TEST&mlt.fl=manu,cat&mlt.mindf=1&mlt.mintf=1
使用ContentStreams:
If you post text in the body, that will be used for similarity. Alternatively, you can put the posted content in the URL using something like:
If remoteStreaming is enabled, you can find documents similar to the text on a webpage:
solr 相似查询-MoreLikeThis的更多相关文章
- Solr 排除查询
前言 solr排除查询也就是我们在数据库和程序中经常处理的不等于,solr的语法是在定语前加[-].. StringBuilder sbHtml=new StringBuilder(); shBhtm ...
- 【solr】之solr界面查询返回距离并排序
使用solr界面查询 {!geofilt}距离函数 star:[4 TO 5]星级排序 geodist() desc 距离排序 pt :31.221717,121.580891 sfield:loca ...
- 【转】Solr客户端查询参数总结
今天还是不会涉及到.Net和数据库操作,主要还是总结Solr 的查询参数,还是那句话,只有先明白了solr的基础内容和查询语法,后续学习solr 的C#和数据库操作,都是水到渠成的事.这里先列出sol ...
- 如何大幅优化solr的查询性能(转)
提升软件性能,通常喜欢去调整各种启动参数,这没有多大意义,小伎俩. 性能优化要从架构和策略入手,才有可能得到较大的收益 Solr的查询是基于Field的,以Field为基本单元,例如一个文章站要索引 ...
- solr facet查询及solrj 读取facet数据[转]
solr facet查询及solrj 读取facet数据 | 所属分类:solr facet solrj 一. Facet 简介 Facet 是 solr 的高级搜索功能之一 , 可以给用户提供更 ...
- solr特点五: MoreLikeThis(查找相似页面)
在 Google 上尝试一个查询,您会注意到每一个结果都包含一个 “相似页面” 链接,单击该链接,就会发布另一个搜索请求,查找出与起初结果类似的文档.Solr 使用MoreLikeThisCompon ...
- Solr高级查询Facet
一.什么是facet solr种以导航为目的的查询结果成为facet,在用户查询的结果上根据分类增加了count信息,然后用户根据count信息做进一步搜索. facet主要用于导航实现渐进式精确搜索 ...
- Solr页面查询各个字段参数解释
q:查询的关键字,此参数最为重要,例如,q=id:1,默认为q=*:*,类似于sql中的where 1=1. fq(filter query):过滤查询,提供一个可选的筛选器查询.返回在q查询符合结果 ...
- [solr] - defType - 查询权重排序
Solr的defType有dismax/edismax两种,这两种的区别,可参见:http://blog.csdn.net/duck_genuine/article/details/8060026 下 ...
随机推荐
- HTML5每日一练之视频标签的应用
与音频一样,在过去,我们如果想在Web上播放视频,也是都是通过Flash来播放,同样并不是所有的浏览器都安装了Flash播放器插件,而现在我们在HTML5中,就能完全脱离Flash或其他的插件来播放视 ...
- Unix 环境高级编程---线程创建、同步、
一下代码主要实现了linux下线程创建的基本方法,这些都是使用默认属性的.以后有机会再探讨自定义属性的情况.主要是为了练习三种基本的线程同步方法:互斥.读写锁以及条件变量. #include < ...
- Linux下的hostname命令详解
1.临时修改: #hostname ***** //*****为修改的hostname 2.永久修改: # vi /etc/sysconfig/networkNETWORKING=yesHOSTNAM ...
- UVALive 3959 Rectangular Polygons (排序贪心)
Rectangular Polygons 题目链接: http://acm.hust.edu.cn/vjudge/contest/129733#problem/G Description In thi ...
- error日志
2016/06/15 微信调核心时通用意外险 2016-06-15 11:44:23,771>>INFO >> com.isoftstone.core.service.comm ...
- spring mvc 数据绑定
1.spring mvc 默认提供的数据绑定类 private List<HandlerMethodArgumentResolver> getDefaultArgumentResolver ...
- HDU 4496 D-City (并查集)
题意:给定一个图,问你每次删除一条边后有几个连通块. 析:水题,就是并查集的运用,倒着推. 代码如下: #include <cstdio> #include <string> ...
- C#.NET 消息机制
一.消息概述 众人周知,window系统是一个消息驱动的系统, windows操作系统本身有自己的消息队列,消息循环,它捕捉键盘,鼠标的动作生成消息,并将这个消息传给应用程序的消息队列. 余下的工作有 ...
- C和设计原则
---DO NOT REPEAT YOURSELF--- 建设性的懒惰,是程序员的第一美德.最简单的懒惰就是不要重复自己,简单到一个命名规则,例如C语言中: int osip_list_init (o ...
- 【ps】gif动态图白边问题
(从死了一次又一次终于挂掉的百度空间中抢救出来的,发表日期 2014-08-13) 在制作gif动态图的时候发现有白边问题 网上说可以设成索引,但是这样一整连动画帧都一块丢掉了. 最终解决办法: 将要 ...