I think the BoostStrategy interface is not right. You can't adjust the boost strategy according to the field name and I think that's important (assuming dynamic boosting is used). We probably should rework it to do interface BoostStrategy { void defineBoost(String fieldName, Object value); } WDYT?