better toString for custom score query

This commit is contained in:
Shay Banon 2011-11-15 22:20:15 +02:00
parent e52ec518f3
commit b5a0ae2fbe
2 changed files with 13 additions and 3 deletions

View File

@ -144,7 +144,7 @@ public class CustomFiltersScoreQueryParser implements QueryParser {
String script = scripts.get(i);
if (script != null) {
SearchScript searchScript = context.scriptService().search(context.lookup(), scriptLang, script, vars);
scoreFunction = new CustomScoreQueryParser.ScriptScoreFunction(searchScript);
scoreFunction = new CustomScoreQueryParser.ScriptScoreFunction(script, vars, searchScript);
} else {
scoreFunction = new BoostScoreFunction(boosts.get(i));
}

View File

@ -90,16 +90,22 @@ public class CustomScoreQueryParser implements QueryParser {
throw new ElasticSearchIllegalStateException("No search context on going...");
}
SearchScript searchScript = context.scriptService().search(context.lookup(), scriptLang, script, vars);
FunctionScoreQuery functionScoreQuery = new FunctionScoreQuery(query, new ScriptScoreFunction(searchScript));
FunctionScoreQuery functionScoreQuery = new FunctionScoreQuery(query, new ScriptScoreFunction(script, vars, searchScript));
functionScoreQuery.setBoost(boost);
return functionScoreQuery;
}
public static class ScriptScoreFunction implements ScoreFunction {
private final String sScript;
private final Map<String, Object> params;
private final SearchScript script;
public ScriptScoreFunction(SearchScript script) {
public ScriptScoreFunction(String sScript, Map<String, Object> params, SearchScript script) {
this.sScript = sScript;
this.params = params;
this.script = script;
}
@ -119,5 +125,9 @@ public class CustomScoreQueryParser implements QueryParser {
exp.addDetail(subQueryExpl);
return exp;
}
@Override public String toString() {
return "script[" + sScript + "], params [" + params + "]";
}
}
}