【问题标题】:Boost Solr results if the value of an attribute is within a list or not如果属性的值在列表中,则提升 Solr 结果
【发布时间】:2015-02-11 22:12:20
【问题描述】:

我有一个类似的查询:

http://solr1:8983/solr/select?defType=lucenePlusSort&fl=pk_i,score&json.nl=map&qt=standard&rows=36&sort=&start=0&wt=json&q=type_s:Product+AND+is_valid_b:true

我需要提升 user_id_i:(123 OR 222 OR 512 OR 932) 的结果

类似 => __val_:"if(user_id_i:(123 OR 222 OR 512 OR 932), 100, 0)"

但显然我需要一个针对特定问题返回真或假的函数。

【问题讨论】:

    标签: solr solr-query-syntax


    【解决方案1】:

    我认为您可以为此使用boost 查询参数,但您必须使用 edismax 查询解析器而不是 lucenePlusSort 解析器。 (http://wiki.apache.org/solr/ExtendedDisMax#boost_.28Boost_Function.2C_multiplicative.29)

    [boost] => product(if(exists(query({!v='user_id_i:(123 OR 222 OR 512 OR 932)'})),100,1))

    【讨论】:

    • 真的希望不必迁移到 edismax,但我找不到任何解决方案可以将它与 luceneplussort 一起使用
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-10-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-12
    相关资源
    最近更新 更多