使用Solr过滤器查询(fq)作为LocalParam似乎被忽略

时间:2013-12-02 13:55:00

标签: solr

我正在尝试使用我的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, 19999, 1

,为什么不重要?

这实际上是我继续尝试做我的另一个问题所描述的内容:https://stackoverflow.com/questions/20287255/how-to-boost-in-solr-when-a-specific-field-matches-q-and-another-condition-is-m/20288250#20288250

1 个答案:

答案 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)

到目前为止似乎做了我想做的事情。不是最漂亮的东西。