Solr QueryElevationComponent--实现竞价排名
在很多搜索网站上都有这样的一个功能,就是竞价排名,绑定某个关键字,给钱了那我给你排前面。
包括很多视频网站的一些站内搜索功能也有这样的需求;
最近在看solr官网,solr的查询功能中就包含了这一功能。参考地址如下:
https://wiki.apache.org/solr/QueryElevationComponent#elevateIds.2FexcludeIds
下面这个网址包含了solr所有功能;对solr感兴趣的可以收藏下!
https://cwiki.apache.org/confluence/display/solr/Spell+Checking
那么接下来我们来实现我们的功能把。
solrconfig.xml
- <searchComponent name="elevator"
- class="org.apache.solr.handler.component.QueryElevationComponent">
- <!-- pick a fieldType to analyze queries -->
- <str name="queryFieldType">string</str>
- <str name="config-file">elevate.xml</str>
- </searchComponent>
- <!-- A request handler for demonstrating the elevator component -->
- <requestHandler name="/elevate"
- class="org.apache.solr.handler.component.SearchHandler" startup="lazy">
- <lst name="defaults">
- <str name="echoParams">explicit</str>
- <!-- <str name="df">text</str> -->
- </lst>
- <arr name="last-components">
- <str>elevator</str>
- </arr>
- </requestHandler>
config-file:elevate.xml,这个文件solr默认已经存在,需要自己配置;默认跟solrconfig.xml同一目录,如无特殊要求可不做修改
searchComponent的name属性是和requestHandler有一个绑定关系的,大家注意一下;
还有就是,requestHandler定义的名称/elevate是我们后面需要用到的节点名,就像selelct一样。使用这一功能的时候把select换成elevate。
requestHandler标签中的defaults-->df是定义了你要做竞价排名,或者说人工干预的查询字段;如果此处不指定的话,需要在查询的时候指定;
- <elevate>
- <query text="isle">
- <doc id="6493" /> <!-- put the actual ipod at the top -->
- <doc id="3971" exclude="true" /> <!-- exclude this cable -->
- </query>
- </elevate>
以上是一个简单的示例,当用户查询isle时,docID为6493的文档会被提到最前。而这里的docID为3971的文档将会被提出到查询的结果之外,因为配置了exclude属性为true。
如果不配置默认为false,即不排除!
接下来我们查询下看看。这里先看下正常的查询结果。这里我们把enableElevation设置为false即可
- <response>
- <lst name="responseHeader">
- <int name="status">0</int>
- <int name="QTime">1</int>
- <lst name="params">
- <str name="enableElevation">false</str>
- <str name="df">name</str>
- <str name="q">isle</str>
- <str name="forceElevation">true</str>
- </lst>
- </lst>
- <result name="response" numFound="6" start="0">
- <doc>
- <str name="id">302</str>
- <str name="name">The Isle</str>
- <str name="year">2001</str>
- <long name="_version_">1480190152307376130</long>
- </doc>
- <doc>
- <str name="id">2</str>
- <str name="name">Isle of Man TT 2004 Review</str>
- <str name="year">2004</str>
- <long name="_version_">1480190152202518528</long>
- </doc>
- <doc>
- <str name="id">6493</str>
- <str name="name">Val Lewton: Isle of the Dead / Bedlam</str>
- <str name="year">1945</str>
- <long name="_version_">1480190153170354189</long>
- </doc>
- <doc>
- <str name="id">3871</str>
- <str name="name">The Who: Live at the Isle of Wight Festival</str>
- <str name="year">1970</str>
- <long name="_version_">1480190152951201796</long>
- </doc>
- <doc>
- <str name="id">9409</str>
- <str name="name">Isle of Wight Festival: Message to Love: 1970</str>
- <str name="year">1970</str>
- <long name="_version_">1480190153367486468</long>
- </doc>
- <doc>
- <str name="id">13617</str>
- <str name="name">
- Jethro Tull: Nothing Is Easy: Live at the Isle of Wight 1970
- </str>
- <str name="year">2005</str>
- <long name="_version_">1480190153579298828</long>
- </doc>
- </result>
- </response>
接下来我们把enableElevation设置为true,查询做下对比
http://localhost:8081/solr/collection1/elevate?q=isle&enableElevation=true&forceElevation=true
查询结果如下:’
- <response>
- <lst name="responseHeader">
- <int name="status">0</int>
- <int name="QTime">18</int>
- <lst name="params">
- <str name="enableElevation">true</str>
- <str name="df">name</str>
- <str name="q">isle</str>
- <str name="forceElevation">true</str>
- </lst>
- </lst>
- <result name="response" numFound="6" start="0">
- <doc>
- <str name="id">6493</str>
- <str name="name">Val Lewton: Isle of the Dead / Bedlam</str>
- <str name="year">1945</str>
- <long name="_version_">1480190153170354189</long>
- </doc>
- <doc>
- <str name="id">302</str>
- <str name="name">The Isle</str>
- <str name="year">2001</str>
- <long name="_version_">1480190152307376130</long>
- </doc>
- <doc>
- <str name="id">2</str>
- <str name="name">Isle of Man TT 2004 Review</str>
- <str name="year">2004</str>
- <long name="_version_">1480190152202518528</long>
- </doc>
- <doc>
- <str name="id">3871</str>
- <str name="name">The Who: Live at the Isle of Wight Festival</str>
- <str name="year">1970</str>
- <long name="_version_">1480190152951201796</long>
- </doc>
- <doc>
- <str name="id">9409</str>
- <str name="name">Isle of Wight Festival: Message to Love: 1970</str>
- <str name="year">1970</str>
- <long name="_version_">1480190153367486468</long>
- </doc>
- <doc>
- <str name="id">13617</str>
- <str name="name">
- Jethro Tull: Nothing Is Easy: Live at the Isle of Wight 1970
- </str>
- <str name="year">2005</str>
- <long name="_version_">1480190153579298828</long>
- </doc>
- </result>
- </response>
可以看到docID为6493的文档被提到最前。而docID为3971的文档被剔除结果集。
Solr QueryElevationComponent--实现竞价排名相关推荐
- Java程序员必看:Solr vip竞价排名
功能介绍 本文将使用solr完成vip等级排名,这里并不是简单的按照vip等级排序.而是在使用solr条件查询(不使用排序)的时候将符合条件并且具有vip等级的数据显示在前面,这个时候咱们就要使用so ...
- solr java 全量,Java程序员必看:Solr vip竞价排名
功能介绍 本文将使用solr完成vip等级排名,这里并不是简单的按照vip等级排序.而是在使用solr条件查询(不使用排 序)的时候将符合条件并且具有vip等级的数据显示在前面,这个时候咱们就要使用s ...
- 百度竞价排名点击软件_网络营销百问百答之60,百度竞价排名出价是出价高好还是低好...
涛哥网销学,网销可以学. 大家好,我是网销侠-涛哥. 今天和大家分享的是<百度竞价排名出价是出价高好还是出价低好> 随着网购的兴起和流行,越来越多的企业也开始布局互联网,开启网商之路. 搜 ...
- 携程否认竞价排名;戴尔为“吃鸡外挂”致歉;腾讯将发区块链游戏 | CSDN极客头条
点击上方"CSDN",选择"置顶公众号" 关键时刻,第一时间送达! 「CSDN 极客头条」是从 CSDN 网站延伸至官方微信公众号的特别栏目,专注于一天业界事报 ...
- 百度竞价排名曝光_企业入驻百度爱采购必须选好本地运营服务商
爱采购的本质 重搜索引擎 轻B2B模式 爱采购的本质是让用户能在百度平台直接搜索到自己想要的商品,爱采购是为用户采购商品而搭建起来的垂直搜索引擎.爱采购自身是没有商家入驻的接口,企业要入驻爱采购必须要 ...
- 什么是SEM竞价推广,竞价排名有何特征?
随着互联网的日益发展壮大,线上的各类广告开始蓬勃发展,SEM推广也不例外.今天我们就来聊聊什么是SEM竞价推广.在福民网络竞价技术看来做SEM竞价推广特点就是以最小的投入,获得最大的来自搜索引擎的访问 ...
- seo中的竞价排名是什么
seo中的竞价排名是什么 一.总结 一句话总结:竞价排名的基本特点是按点击付费,推广信息出现在搜索结果中(一般是靠前的位置),如果没有被用户点击,则不收取推广费. 搜索引擎的一种推广广告的方式 1.竞 ...
- 什么是百度竞价排名?
百度竞价排名也被称作百度搜索推广.百度关键字推广.是一种按效果付费的网络推广方式,企业在购买该项服务后,提交自己定制的关键词,其推广信息就会率先出现在网民相应的搜索结果中.简单来说就是当用户利用某一关 ...
- 竞价排名中的道德争议
多年以来,中国民众受医疗行业虚假广告之害甚深.这类广告最先是针对性病等难言之隐或牛皮癣等难以治愈的顽疾,通过在电线杆或墙壁上贴小广告的方式招揽患者.现在,这类资讯还通过百度竞价排名或者电视台.电台发布 ...
最新文章
- linux系统目录树/内核源码目录树
- 初创企业购买企业邮箱_支持#NetNeutrality =支持设计师及其创建的初创企业
- 七十九、深度和广度优先搜索算法
- Informix IDS 11系统料理(918查验)认证指南,第 4 部分: 功能调优(5)
- ros名称、命名空间和重映射
- 谷歌浏览器chrome假死、卡死、经常无反应,火狐firefox闪黑格子的解决办法(显卡/驱动兼容问题)...
- 请实现一个函数,将一个字符串中的每个空格替换成...
- std::string.assign()的用法-爱情滕-搜狐博客
- HTTPS为什么更安全,先看这些 , 网络加密 , 加密解密
- 常用连接Linux的SSH工具、SFTP工具
- 自己动手实现arping
- 浩辰3D设计软件中如何进行弹簧设计?
- 数据结构合并两个有序链表
- 配置Skype for business 2015混合部署
- 苹果电脑怎么清理垃圾和缓存文件,mac如何清理系统缓存文件
- 你知道CAD中的样条曲线的绘制方法吗?
- Linux: meld软件使用
- 宽带和流量是分开的吗_宽带、带宽和流量的区别
- 关于机器指令和微指令
- [转贴]eclipse和netbeans的区别