首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Solr中实现升级文档

在Solr中实现升级文档
EN

Stack Overflow用户
提问于 2016-11-21 23:20:45
回答 2查看 398关注 0票数 4

是否有一种方法可以使用一个请求在Solr中实现升级(又名"Ad")文档?

要求:

  1. 广告文档是带有ad=true标志的常规文档。
  2. 广告文档是动态的(文档可以频繁地更改Ad状态)。
  3. 广告文档应该有他们的排名逻辑(另一组助推和分组)
  4. 广告文档应该有它的一组过滤器

Ad文档应与常规(非促销)文档一起返回。

每一页的结果必须有N个数量的Ad文档(例如3),其余的应该是常规列表。

我们目前正在通过提出两个请求来实现我们想要的目标,一个是关于Ad文档的请求,另一个是对常规文档的请求(不包括筛选器在常规文档中不显示广告文档)。但是在一个查询中这样做非常有帮助。

我们试图复制谷歌广告的行为,在每一页结果显示5-6个广告(在顶部和底部)。Google上的付费链接是从付费链接池中获取的,并与有机项目一起显示在页面上。如果一个广告链接显示在一个页面上,它不会显示在有机结果中。

EN

回答 2

Stack Overflow用户

发布于 2016-11-22 10:06:08

查询标高组件 查询提升组件允许您为给定的查询配置顶级结果,而不考虑常规的Lucene评分。这有时被称为“赞助搜索”、“编辑提升”或“最佳选择”。此组件将用户查询文本与配置的顶级结果映射匹配。

elevate.xml

代码语言:javascript
复制
<elevate>
<query text="foo bar">
<doc id="1" />
<doc id="2" />
<doc id="3" />
</query>
<query text="ipod">
<doc id="MA147LL/A" /> <!-- put the actual ipod at the top -->
<doc id="IW-02" exclude="true" /> <!-- exclude this cable -->
</query>
</elevate>

在本例中,查询"foo bar“将首先返回文档1、2和3,然后返回相同查询通常出现的任何内容。对于查询"ipod",它将首先返回"MA147LL/A",并确保"IW-02“不在结果集中。

forceElevation参数

您可以在运行时通过将forceElevation=true添加到查询URL来强制提升:

solrconfig.xml

代码语言:javascript
复制
    <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>
<requestHandler name="/elevate" class="solr.SearchHandler" startup="lazy">
<lst name="defaults">
<str name="echoParams">explicit</str>
</lst>
<arr name="last-components">
<str>elevator</str>
</arr>
</requestHandler>
票数 3
EN

Stack Overflow用户

发布于 2016-12-14 21:34:40

这是不可能实现与Solr。它不提供任何内置的方法,以确定前3插槽。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40731241

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档