Hi,

I am using LTR, and writing custom features.
What I want to do, is conditional calculation, based on string comparison.
Something like
  if ($gender == 'test') {
    calculation 1 (for test just return 0)
  } else {
    calculation 2 (for test just return 1)
  }

'gender' is param passed in the user query, for test purposes below it is
given value '*'.
Different variants of what I am trying to do

1)    {!func}if(\"${gender}\"==\"test\",0,1)
Exception: org.apache.solr.search.SyntaxError: Expected ',' at position 6
in 'if("*"=="test",0,1)'

2)    {!func}if('${gender}'=='test',0,1)
Exception: org.apache.solr.search.SyntaxError: Expected ',' at position 6
in 'if('*'=='test',0,1)'

3)    {!func}if(eq(${gender},'test'),0,1)
Exception: java.lang.UnsupportedOperationException
at
org.apache.lucene.queries.function.FunctionValues.doubleVal(FunctionValues.java:49)
at
org.apache.solr.search.function.SolrComparisonBoolFunction.compare(SolrComparisonBoolFunction.java:55)
at
org.apache.lucene.queries.function.valuesource.ComparisonBoolFunction$1.boolVal(ComparisonBoolFunction.java:61)


Any hint how to achieve this?

Best regards,
Dariusz Wojtas

Reply via email to