我正在尝试使用我的boost参数中的子查询进行查询。 boost参数如下所示:
boost=if(exists(query({!dismax qf='title' fq='type:company' v=$q})), 2, 1)
似乎发生了某种提升,但似乎完全忽略了fq
。我的意思是,从字面上看,我写的并不重要。结果保持不变。如果我将qf
更改为body
或其他内容,则会明显影响结果。如果我将2, 1
更改为9999, 1
,则无效。
我在这里做错了什么?为什么fq
不起作用?如果我写2, 1
或9999, 1
?
这实际上是我继续尝试做我的另一个问题所描述的内容:https://stackoverflow.com/questions/20287255/how-to-boost-in-solr-when-a-specific-field-matches-q-and-another-condition-is-m/20288250#20288250
答案 0 :(得分:0)
我最终使用了这样的东西:
boost=if(exists(query({!v='type:company'})), if(exists(query({!v='state:0'})), if(exists(query({!dismax qf='title' v=$q})), 2, 1), 1), 1)
到目前为止似乎做了我想做的事情。不是最漂亮的东西。