Solr FunctionQuery ha una funzione DIV (x, y). Ho una tale necessità se y = 0, allora y dovrebbe essere uguale a x.Solr FunctionQuery: gte, lte, eq functions
In altre parole, devono rappresentare la seguente logica con FunctionQuery:
if y == 0, return 1 /* i.e. DIV(x,x) */
else, return DIV(x,y)
qualche modo, dal documento Solr, non riesco a trovare alcuna funzione di confronto, ad esempio EQ (x, value), ecc. Da usare.
Qualcuno sarà in grado di darmi un suggerimento per costruire la logica desiderata utilizzando FunctionQuery?
Grazie!
Doesnt a == 'lavoro' per te? qualcosa come 'if (y == 0,1, DIV (x, y))'? –
Non funziona. Mi sto aspettando ',' nella posizione 17 in 'if (exposure_count == 0,1, div (1, exposure_count))'. Questo è quello che cerco di utilizzare la funzione Boost nella query. La sintassi completa è {! Boost b = if (exposure_count == 0,1, div (1, exposure_count))} – ckh
Per aggiungere: Se rimuovo == 0, ha funzionato. {! Spinta + b% 3Dif (exposure_count, 1, div (1, exposure_count))}. Sembra che non ci sia modo di fare un confronto. – ckh