Apache Solr实现竞价排名

如果想在solr实现像百度一样相似的竟价的排名,也是可以的,在solr中实现竟价排名,主要使用QueryElevationComponent组件,

solrconfig.xml配置:
复制代码
<searchComponent name="elevator" class="solr.QueryElevationComponent">  
    <!-- pick a fieldType to analyze queries -->  
    <str name="queryFieldType">string</str>  
    <str name="config-file">elevate.xml</str>  
  </searchComponent>  
  
  <!-- a request handler utilizing the elevator component -->  
  <requestHandler name="/elevate" class="solr.SearchHandler" startup="lazy">  
    <lst name="defaults">  
        <str name="defType">myqueryparser</str>  
      <str name="echoParams">explicit</str>  
    </lst>  
    <arr name="last-components">  
      <str>elevator</str>  
    </arr>  
  </requestHandler>  
复制代码


通过相应的URL:  

http://localhost:8088/solr/elevate?q=天山长宁&enableElevation=true&forceElevation=true&exclusive=true&debugQuery=true

Solr中实现竟价排名,要竞价的文档通过配置文件elevate.xml进行设置,此文件可以放在solr/data下,也可以放在solr/conf下,

elevate.xml配置:
复制代码
<elevate> 
 <query text="hellip">   
  <doc id="143702"/>     
  <doc id="143328"/>  
  <!-- doc id="143701" exclude="true"/-->  
 </query>  
 <query text="天山长宁">   
  <doc id="35206"/>    
  <doc id="57515"/>  
  <!-- doc id="143701" exclude="true"/-->  
 </query>   
</elevate>  
复制代码


通过配置关键字和相应的ID,就可以把指定的文档放到最前面,这里把"天山长宁",放在关键字中,能过查询"天山长宁",会把包括"天山长宁"的文档中id:35206,id:57515排在最前面,同时也可以去除指定的文档,如上可以通过exclude="true" 参数,不显示指定的文档. 

搜索结果如下图

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值