2013-12-02 3 views
0

Я пытаюсь сделать запрос с подзапросом в моем параметре boost. Параметр подталкивания выглядит следующим образом:Использование запроса фильтра Solr (fq) в качестве LocalParam, похоже, игнорируется

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

Я в конечном итоге, используя что-то вроде этого:

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) 

До сих пор это кажется делать то, что я хочу делать. Не самая красивая вещь вокруг.

Смежные вопросы