【问题标题】:SOLR FL and Boost Params CalculationSOLR FL 和 Boost 参数计算
【发布时间】:2019-07-15 19:33:24
【问题描述】:

我的 boost 参数中有一个非常复杂且冗长的函数。此函数将始终返回 1 到 50 之间的值。我希望此函数的结果包含在 fl 参数中。

第一个问题是,我可以在 fl 参数中引用 boost 的结果而不必在 fl 参数中传递函数 AGAIN 吗?

第二个问题是:如果我给boost函数赋值一个变量,然后在fl参数中引用这个变量,SOLR会做两次计算吗? (我的意思是一次用于 boost 字段,另一个用于 fl 字段)

我的 boost 参数函数如下所示:

boost=sum(div(5,map(abs(sub(x,y)),0,0,VALUE), termfreq(...), dist(2,0,0,x,y),.....)

上面的函数只是提升可能是什么样子的一个简短示例。此外,这个升压函数是动态生成的。 我正在使用 edismax 和 SOLR v7.6

【问题讨论】:

    标签: boost solr lucene edismax


    【解决方案1】:

    参数替换发生在 Solr 内部发生任何事情之前,因此在这种情况下,它会被计算两次。

    您可以将debug=results 附加到您的查询字符串中,以获取有关查询的每个部分对分数有多少贡献的详细信息,并且您应该能够从该调试信息中提取应用的提升量(并避免计算它两次)。您可以附加 debug.explain.structured=true 以获取以正确结构返回的解释信息,而不是格式化文本(带有换行符等)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-26
      • 1970-01-01
      相关资源
      最近更新 更多