【问题标题】:How do I penalize (downward boost) in solr?如何在 solr 中惩罚(向下提升)?
【发布时间】:2012-01-13 10:07:23
【问题描述】:

我需要做三件事,但我无法弄清楚:

  1. 对搜索查询中缺少的方面(例如“品牌”)进行处罚。我尝试做 &defType=dismax&qf=(:* AND -brand:[* TO ])^1000 但它会惩罚所有结果

  2. 如果包含特定字符串不管查询是什么,则向上或向下提升特定方面 - 例如,我想提升任何包含 free/freebi/freebie 的结果标题字符串并降低标题字符串中包含“pre-used”的任何结果 我尝试过 &defType=dismax&qf=(title:[FREEBIES OR FREE])^1000 但它似乎不起作用

【问题讨论】:

    标签: search solr lucene


    【解决方案1】:

    这行得通吗?

    fq=<YOUR MAIN QUERY>&bq=(-brand:[* TO x])^9999

    【讨论】:

    • 否 - 这是我解析的查询 "querystring":"'canon slr'", "parsedquery":"+((DisjunctionMaxQuery((body:canon^0.3 | author:canon^100.0 | title :canon^1000.0 | 型号:canon^100.0 | 类别:canon^50.0 | 名称:canon^3.0 | 品牌:'canon^20.0)~0.01) DisjunctionMaxQuery((body:slr^0.3 | author:slr^100.0 | title: slr^1000.0 | 型号:slr^100.0 | 类别:slr^50.0 | 名称:slr^3.0 | 品牌:slr'^20.0)~0.01))~2) DisjunctionMaxQuery((body:\"canon slr\"~15^ 2.0)~0.01) ((-brand:[* TO canon])^9999.0) FunctionQuery(1000.0/(1.0*float(top(rord(created)))+1000.0))",
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-12-16
    • 2012-05-12
    • 2019-07-10
    • 1970-01-01
    • 2021-06-13
    • 2018-12-06
    • 2022-06-11
    相关资源
    最近更新 更多