Ich versuche, den Wert eines Dokuments entsprechend dem Wert eines Floating-Nummer-Felds aus dem Dokument zu erhöhen.So verwenden Sie eine Bewertungsfunktion in Solrj
Zum Beispiel kann der Benutzer nach „Olifanten namens ron, mit der Höhe zwischen 6 und 10 Metern“ und ich möchte das height
Feld in einer Art und Weise abgefragt werden ähnlich ein DecayFunction.
In der folgenden vereinfachten Abfrage Ich erwarte, dass Olifanten nach Name und Höhe hat zurückzuholen, wo Höhe näher zu 8 Meter ist besser -
q=name:"ron" _val_:"div(1,abs(sub(height,8)))"
ich meine exponentiellen Zerfall Bewertungsfunktion unter Verwendung einer Kombination von entworfen haben math operands und regular functions -
exp(sub(0,div(pow(max(0,sub(abs(sub(value,origin)),offset)),2),mul(2,sub(0,div(pow(scale,2),mul(2,ln(decay))))))))
Nun möchte Ich mag diese Funktion in die Abfrage Punktzahl zu übernehmen, die _val_
magic field verwenden.
Wie kann ich dies in Solrj erreichen?
Welche anderen Möglichkeiten gibt es (statt), dies zu tun?
{p.s. - Ich verwende den Standardabfrageparser, in Solr 5.3.1}
Können Sie bitte die tatsächliche Abfrage hinzufügen damit wir genau wissen, wie es geht. Was ist das erwartete Ergebnis? Kannst du ein einfaches Beispiel geben? –
Ich habe beides gemacht. lassen Sie mich wissen, ob das hilft – selotape