问题标签 [solr-boost]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
206 浏览

apache - Apache SOLR:最近的和相关的文档应该在顶部

我在 APACHE SOLR 中将文章索引为文档。

当我使用搜索词(例如“患者访问”)查询 SOLR 时,默认情况下,文档按分数排序。但是我的要求是如果有一个文档在内容标题中具有完整的短语匹配并且是旧文档,那么它也应该出现在顶部。

我曾尝试使用 bf=recip(ms(NOW,modify_date),3.16e-11,1,1) 来提升最近的文档,但我需要知道如何处理、新近度以及相关性。

简而言之,如果完整的短语匹配,分数会得到更多的提升,并且最近的文档也会得到提升。

谢谢。

0 投票
1 回答
800 浏览

boost - 解释 Apache SOLR 升压功能

我正在尝试在 APACHE SOLR 中实现一个逻辑,以便超过 2 年的文档应该根据天数或月数的差异受到惩罚。

我正在使用这个增强功能,这是我在谷歌搜索后得到的。

任何人都可以确认这是惩罚旧文件还是什么?

谢谢

0 投票
1 回答
508 浏览

elasticsearch - Elasticsearch:使用映射提升特定值的字段

我正在使用弹性搜索 5.6 版。当它的值是视频(“contentType”:“video”)时,我想提升字段“type”。目前我的映射如下所示:

如何在 contentType 等于“video”的情况下指定仅提升 4?我知道它可以在查询端完成,但我想在我的映射中完成。是否可以?任何帮助表示赞赏

0 投票
1 回答
42 浏览

elasticsearch - 通过 Solr 或 Elastics 中的动态数据评分

我的Solr. 每个企业都有一个位置、一个评级和多个折扣计划。现在我用来Solr为每个用户推荐评分最高和最近的企业。它工作得很好。
我的计划是为搜索查询添加折扣。

每个企业都有4个折扣计划。
Biz1 ====> Paln0=0%, Plan1=5%, Plan2=10%, Plan3=15%
Biz2 ====> Plan0=0%, Plan1=2%, Plan2=5%, Plan3=7%
此数据保存在Solr文档中。

每个用户都有针对该业务的每一项的自己的折扣计划。
User1 ===> Biz1=Plan1, Biz2=Plan3
User2 ===> Biz1=Plan3, Biz2=Plan2
这些数据保存在我的数据库中。

我想为Solr分数添加折扣,但对于每个用户,这个折扣是不同的!简单地说,通过从分数中删除位置和评级,它只会是折扣,并且上述示例的结果User1必须User2是:
User1 1-Biz2 7% 2-Biz1 5%

User2 1-Biz1 15% 2-Biz2 5%

有什么解决我的问题的方法SolrElasticsearch

0 投票
0 回答
149 浏览

boost - 基于 Solr 多值字段中的每个项目提升搜索结果

我正在努力将 Solr 集成到我的应用程序中。我有一个与每个产品相关的关键字列表。我对关键字字段使用多值并将其编入索引。问题是我想根据 Solr 索引中多值字段中的每个项目按顺序提升搜索结果。(目前我在多值字段的搜索结果中没有看到顺序,我稍后会修复它。)

如果我想在我身边这样做,我需要添加不同的搜索字段并通过 Solr 对它们进行索引,并为它们中的每一个设置提升。

但是我想知道如果我在 Solr 中使用列表作为多值字段,我可以在不改变 db 架构成本的情况下做类似的事情。

我是 Solr 的新手,如果你发现这个问题太简单了,请给我任何资源,让我有解决问题的提示。我目前正在阅读 Apache Solr 文档,到目前为止找不到任何对我有帮助的东西。

0 投票
0 回答
544 浏览

c# - C# Solr 查询,Boost 不起作用

我正在使用 C# 来查询 Solr 以进行我的站点搜索。该代码在过滤和搜索特定字段中的关键字方面很好,但我无法让 Boost 工作。我需要使用提升,以便首先返回关键字在标题字段中的项目,然后是描述字段中的关键字,然后是内容中的关键字。

我的搜索代码创建了一个 SearchQuery 并将一个包含 PredicateBuilder 的 QueryBuilder 添加到 SearchQuery.QueryBuilders。这是我的代码的简化版本(去掉了不相关的代码)



我得到了正确的结果,因为我只得到包含关键字的项目,但提升没有做任何事情。我在关键字标题结果之前获得关键字描述结果,如果我更改提升以使 ShortPageSummary 提升高于标题,或者完全删除 .Boost(),结果保持不变。

我没有传入任何 SortBuilder,所以排序是 Solr 默认所做的。我试着设置这个:

但这会返回完全混乱的结果,似乎比以前更糟。

编辑:我检查了 Solr 日志,并且没有将 Boost 添加到传递给 Solr 的查询中。

0 投票
1 回答
193 浏览

solr - 一个字段中每个匹配值的多重提升

我有一个多个字段,具有以下值:

现在我有以下查询:

所以我得到了结果,但分数是 5。我想通过提升每个匹配值来发出搜索请求以获得 10 分。

0 投票
1 回答
72 浏览

ruby-on-rails - 文本字段上的 Sunspot Solr Boost

我想根据任何文本字段提升结果中的文档。

例如。考虑以下模式

为了提升布尔字段,我们可以简单地添加一个像这样的提升子句:

我想在文本字段上实现提升,假设我想获取所有帖子,但必须先发布标记为“重要”的帖子,如下所示:

我知道上面的代码不正确,但解释了所需的行为。

0 投票
2 回答
256 浏览

solr - 当提升的术语出现在多个字段中时,solr 中的查询字段提升问题

我在 solr 中有 4 个字段。例如。Field1, Field2, Field3 and Field4.

我的升压序列就像field1^10, field2^8, field3^7 field4^6.

现在,如果我搜索关键字营销可以说q=(Field1:("marketing")^10 OR Field2:("marketing")^8 OR Field3:("marketing")^7 OR Field4:("marketing")^6)

要求:现在根据要求,field1应该首先出现市场营销,这样就可以正常工作。

问题:但是有一条记录出现了营销,Field3并且Field4在结果中出现了第二名,而在 Field2 中包含营销的记录在结果中出现第三名,这可能是因为评分机制。

我需要的解决方案:我想按照在该字段中应用的提升顺序显示记录,无论是否在多个字段中找到它,即在字段 2 中具有营销的记录应该始终出现在结果中的第二位。

0 投票
1 回答
352 浏览

solr - Solr Boost-Function on Sales

我将 Apache Solr 8 与产品一起用作文档。每个文档都包含我想要提升的最近 X 天内的销售额,以及标题和其他字段。

假设productA已售出5次,我想用score+10来提升它;一个产品B已经卖出了50次,我想把分数提高30。

我尝试使用看起来像(edismax 查询解析器)的 boostFunction

Solr 现在返回与我的“Coffee”-Query 无关但仅与 boost 函数匹配的文档。甚至有得分为“0”的结果。例如

有什么想法可以摆脱那些“唯一的增强功能”匹配吗?