在很多搜索网站上都有这样的一个功能,就是竞价排名,绑定某个关键字,给钱了那我给你排前面。

包括很多视频网站的一些站内搜索功能也有这样的需求;

最近在看solr官网,solr的查询功能中就包含了这一功能。参考地址如下:

https://wiki.apache.org/solr/QueryElevationComponent#elevateIds.2FexcludeIds

下面这个网址包含了solr所有功能;对solr感兴趣的可以收藏下!

https://cwiki.apache.org/confluence/display/solr/Spell+Checking

那么接下来我们来实现我们的功能把。

solrconfig.xml

[html] view plain copy
  1. <searchComponent name="elevator"
  2. class="org.apache.solr.handler.component.QueryElevationComponent">
  3. <!-- pick a fieldType to analyze queries -->
  4. <str name="queryFieldType">string</str>
  5. <str name="config-file">elevate.xml</str>
  6. </searchComponent>
  7. <!-- A request handler for demonstrating the elevator component -->
  8. <requestHandler name="/elevate"
  9. class="org.apache.solr.handler.component.SearchHandler" startup="lazy">
  10. <lst name="defaults">
  11. <str name="echoParams">explicit</str>
  12. <!-- <str name="df">text</str> -->
  13. </lst>
  14. <arr name="last-components">
  15. <str>elevator</str>
  16. </arr>
  17. </requestHandler>

config-file:elevate.xml,这个文件solr默认已经存在,需要自己配置;默认跟solrconfig.xml同一目录,如无特殊要求可不做修改

searchComponent的name属性是和requestHandler有一个绑定关系的,大家注意一下;

还有就是,requestHandler定义的名称/elevate是我们后面需要用到的节点名,就像selelct一样。使用这一功能的时候把select换成elevate。
requestHandler标签中的defaults-->df是定义了你要做竞价排名,或者说人工干预的查询字段;如果此处不指定的话,需要在查询的时候指定;

[html] view plain copy
  1. <elevate>
  2. <query text="isle">
  3. <doc id="6493" />  <!-- put the actual ipod at the top -->
  4. <doc id="3971" exclude="true" /> <!-- exclude this cable -->
  5. </query>
  6. </elevate>

以上是一个简单的示例,当用户查询isle时,docID为6493的文档会被提到最前。而这里的docID为3971的文档将会被提出到查询的结果之外,因为配置了exclude属性为true。

如果不配置默认为false,即不排除!

接下来我们查询下看看。这里先看下正常的查询结果。这里我们把enableElevation设置为false即可

[html] view plain copy
  1. <response>
  2. <lst name="responseHeader">
  3. <int name="status">0</int>
  4. <int name="QTime">1</int>
  5. <lst name="params">
  6. <str name="enableElevation">false</str>
  7. <str name="df">name</str>
  8. <str name="q">isle</str>
  9. <str name="forceElevation">true</str>
  10. </lst>
  11. </lst>
  12. <result name="response" numFound="6" start="0">
  13. <doc>
  14. <str name="id">302</str>
  15. <str name="name">The Isle</str>
  16. <str name="year">2001</str>
  17. <long name="_version_">1480190152307376130</long>
  18. </doc>
  19. <doc>
  20. <str name="id">2</str>
  21. <str name="name">Isle of Man TT 2004 Review</str>
  22. <str name="year">2004</str>
  23. <long name="_version_">1480190152202518528</long>
  24. </doc>
  25. <doc>
  26. <str name="id">6493</str>
  27. <str name="name">Val Lewton: Isle of the Dead / Bedlam</str>
  28. <str name="year">1945</str>
  29. <long name="_version_">1480190153170354189</long>
  30. </doc>
  31. <doc>
  32. <str name="id">3871</str>
  33. <str name="name">The Who: Live at the Isle of Wight Festival</str>
  34. <str name="year">1970</str>
  35. <long name="_version_">1480190152951201796</long>
  36. </doc>
  37. <doc>
  38. <str name="id">9409</str>
  39. <str name="name">Isle of Wight Festival: Message to Love: 1970</str>
  40. <str name="year">1970</str>
  41. <long name="_version_">1480190153367486468</long>
  42. </doc>
  43. <doc>
  44. <str name="id">13617</str>
  45. <str name="name">
  46. Jethro Tull: Nothing Is Easy: Live at the Isle of Wight 1970
  47. </str>
  48. <str name="year">2005</str>
  49. <long name="_version_">1480190153579298828</long>
  50. </doc>
  51. </result>
  52. </response>

接下来我们把enableElevation设置为true,查询做下对比

http://localhost:8081/solr/collection1/elevate?q=isle&enableElevation=true&forceElevation=true

查询结果如下:’

[html] view plain copy
  1. <response>
  2. <lst name="responseHeader">
  3. <int name="status">0</int>
  4. <int name="QTime">18</int>
  5. <lst name="params">
  6. <str name="enableElevation">true</str>
  7. <str name="df">name</str>
  8. <str name="q">isle</str>
  9. <str name="forceElevation">true</str>
  10. </lst>
  11. </lst>
  12. <result name="response" numFound="6" start="0">
  13. <doc>
  14. <str name="id">6493</str>
  15. <str name="name">Val Lewton: Isle of the Dead / Bedlam</str>
  16. <str name="year">1945</str>
  17. <long name="_version_">1480190153170354189</long>
  18. </doc>
  19. <doc>
  20. <str name="id">302</str>
  21. <str name="name">The Isle</str>
  22. <str name="year">2001</str>
  23. <long name="_version_">1480190152307376130</long>
  24. </doc>
  25. <doc>
  26. <str name="id">2</str>
  27. <str name="name">Isle of Man TT 2004 Review</str>
  28. <str name="year">2004</str>
  29. <long name="_version_">1480190152202518528</long>
  30. </doc>
  31. <doc>
  32. <str name="id">3871</str>
  33. <str name="name">The Who: Live at the Isle of Wight Festival</str>
  34. <str name="year">1970</str>
  35. <long name="_version_">1480190152951201796</long>
  36. </doc>
  37. <doc>
  38. <str name="id">9409</str>
  39. <str name="name">Isle of Wight Festival: Message to Love: 1970</str>
  40. <str name="year">1970</str>
  41. <long name="_version_">1480190153367486468</long>
  42. </doc>
  43. <doc>
  44. <str name="id">13617</str>
  45. <str name="name">
  46. Jethro Tull: Nothing Is Easy: Live at the Isle of Wight 1970
  47. </str>
  48. <str name="year">2005</str>
  49. <long name="_version_">1480190153579298828</long>
  50. </doc>
  51. </result>
  52. </response>

可以看到docID为6493的文档被提到最前。而docID为3971的文档被剔除结果集。

Solr QueryElevationComponent--实现竞价排名相关推荐

  1. Java程序员必看:Solr vip竞价排名

    功能介绍 本文将使用solr完成vip等级排名,这里并不是简单的按照vip等级排序.而是在使用solr条件查询(不使用排序)的时候将符合条件并且具有vip等级的数据显示在前面,这个时候咱们就要使用so ...

  2. solr java 全量,Java程序员必看:Solr vip竞价排名

    功能介绍 本文将使用solr完成vip等级排名,这里并不是简单的按照vip等级排序.而是在使用solr条件查询(不使用排 序)的时候将符合条件并且具有vip等级的数据显示在前面,这个时候咱们就要使用s ...

  3. 百度竞价排名点击软件_网络营销百问百答之60,百度竞价排名出价是出价高好还是低好...

    涛哥网销学,网销可以学. 大家好,我是网销侠-涛哥. 今天和大家分享的是<百度竞价排名出价是出价高好还是出价低好> 随着网购的兴起和流行,越来越多的企业也开始布局互联网,开启网商之路. 搜 ...

  4. 携程否认竞价排名;戴尔为“吃鸡外挂”致歉;腾讯将发区块链游戏 | CSDN极客头条

    点击上方"CSDN",选择"置顶公众号" 关键时刻,第一时间送达! 「CSDN 极客头条」是从 CSDN 网站延伸至官方微信公众号的特别栏目,专注于一天业界事报 ...

  5. 百度竞价排名曝光_企业入驻百度爱采购必须选好本地运营服务商

    爱采购的本质 重搜索引擎 轻B2B模式 爱采购的本质是让用户能在百度平台直接搜索到自己想要的商品,爱采购是为用户采购商品而搭建起来的垂直搜索引擎.爱采购自身是没有商家入驻的接口,企业要入驻爱采购必须要 ...

  6. 什么是SEM竞价推广,竞价排名有何特征?

    随着互联网的日益发展壮大,线上的各类广告开始蓬勃发展,SEM推广也不例外.今天我们就来聊聊什么是SEM竞价推广.在福民网络竞价技术看来做SEM竞价推广特点就是以最小的投入,获得最大的来自搜索引擎的访问 ...

  7. seo中的竞价排名是什么

    seo中的竞价排名是什么 一.总结 一句话总结:竞价排名的基本特点是按点击付费,推广信息出现在搜索结果中(一般是靠前的位置),如果没有被用户点击,则不收取推广费. 搜索引擎的一种推广广告的方式 1.竞 ...

  8. 什么是百度竞价排名?

    百度竞价排名也被称作百度搜索推广.百度关键字推广.是一种按效果付费的网络推广方式,企业在购买该项服务后,提交自己定制的关键词,其推广信息就会率先出现在网民相应的搜索结果中.简单来说就是当用户利用某一关 ...

  9. 竞价排名中的道德争议

    多年以来,中国民众受医疗行业虚假广告之害甚深.这类广告最先是针对性病等难言之隐或牛皮癣等难以治愈的顽疾,通过在电线杆或墙壁上贴小广告的方式招揽患者.现在,这类资讯还通过百度竞价排名或者电视台.电台发布 ...

最新文章

  1. linux系统目录树/内核源码目录树
  2. 初创企业购买企业邮箱_支持#NetNeutrality =支持设计师及其创建的初创企业
  3. 七十九、深度和广度优先搜索算法
  4. Informix IDS 11系统料理(918查验)认证指南,第 4 部分: 功能调优(5)
  5. ros名称、命名空间和重映射
  6. 谷歌浏览器chrome假死、卡死、经常无反应,火狐firefox闪黑格子的解决办法(显卡/驱动兼容问题)...
  7. 请实现一个函数,将一个字符串中的每个空格替换成...
  8. std::string.assign()的用法-爱情滕-搜狐博客
  9. HTTPS为什么更安全,先看这些 , 网络加密 , 加密解密
  10. 常用连接Linux的SSH工具、SFTP工具
  11. 自己动手实现arping
  12. 浩辰3D设计软件中如何进行弹簧设计?
  13. 数据结构合并两个有序链表
  14. 配置Skype for business 2015混合部署
  15. 苹果电脑怎么清理垃圾和缓存文件,mac如何清理系统缓存文件
  16. 你知道CAD中的样条曲线的绘制方法吗?
  17. Linux: meld软件使用
  18. 宽带和流量是分开的吗_宽带、带宽和流量的区别
  19. 关于机器指令和微指令
  20. [转贴]eclipse和netbeans的区别

热门文章

  1. 论天龙八部和程序员的关系
  2. Mr.Xiong使用jQuery从控制器获取数据
  3. mp3文件转pcm文件
  4. case when 用法
  5. 方便他人快速给你发邮件简单代码实现 QQ邮箱一键邮我组件让你体验什么是快?
  6. Glade+GTK+ 实现通讯录信息管理系统图形界面软件开发
  7. linux常见操作命令
  8. (SQL入门详解)每天十分钟。10天搞定SQL
  9. 软件项目管理案例教程(第三版 韩万江,姜立新)其它课后题答案持续更新,欢迎收藏+关注
  10. 香港科大EMBA校友黄立伟冠名两位商学院教授