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 下 ...
随机推荐
- vim切换buffer
[vim切换buffer] 命令 ls 可查看当前已打开的buffer 命令 b num 可切换buffer (num为buffer list中的编号) 其它命令: :bn -- buffer列表中下 ...
- 野火STM32 Flash&sd卡模拟U盘
在USB库文件mass_mal.c中添加对flash和sd读写的函数,USB库调用这些函数从而实现模拟U盘的功能 //mass_mal.c /* Includes ------------------ ...
- BootCamp支持软件4/5
按 Mac 机型列出的 Boot Camp 要求 不同的 Mac 电脑适用不同版本的 Windows.如果您不知道您拥有的 Mac 是什么机型,请从 Apple 菜单中选取“关于本机”. 每个表格条目 ...
- 【转】Android 实现蘑菇街购物车动画效果
原文出处:http://blog.csdn.net/wangjinyu501/article/details/38400479 1.思路 目前想到两种方式实现这种效果,一是使用Tween动画,直截 ...
- mybatis 注解快速上手
一.mybatis 简单注解 关键注解词 : @Insert : 插入sql , 和xml insert sql语法完全一样 @Select : 查询sql, 和xml select sql语法完全一 ...
- 快递查询API接口(trackingmore)
快递查询接口 目前提供快递查询的接口平台有: Trackingmore 快递100 快递网 不同接口的区别: (1)Trackingmore支持380家快递公司,其中有55家为国内的快递,其余325家 ...
- uva387 - A Puzzling Problem
A Puzzling Problem The goal of this problem is to write a program which will take from 1 to 5 puzzle ...
- 729 - The Hamming Distance Problem
// 题意: // 输入两个整数N, H,按照字典序输出所有长度为N,恰好包含H个1的01串 // 规模:1<=H<=N<=16 // 算法A:2^N枚举,输出1的个数为H的.采 ...
- 配置Outlook Anywhere2010
防火墙只需要开放CAS的443端口,其他硬件防火墙也是如此,不需要开放其他额外端口(80也没有必要开通,如果都使用https的话) 1.CAS:服务器配置-申请证书(内部.外部CAS名称)2.CAS: ...
- boost::token_compress_on
对于场景:string s = "123456",用"3","4"切分,默认情况下(boost::token_compress_off),切 ...