@Override
protected QueryNode preProcessNode(QueryNode node) throws QueryNodeException {
if (node instanceof FuzzyQueryNode) {
FuzzyQueryNode fuzzyNode = (FuzzyQueryNode) node;
QueryConfigHandler config = getQueryConfigHandler();
if (config != null && config.hasAttribute(FuzzyAttribute.class)) {
FuzzyAttribute fuzzyAttr = (FuzzyAttribute) config
.getAttribute(FuzzyAttribute.class);
fuzzyNode.setPrefixLength(fuzzyAttr.getPrefixLength());
if (fuzzyNode.getSimilarity() < 0) {
fuzzyNode.setSimilarity(fuzzyAttr.getFuzzyMinSimilarity());
}
} else if (fuzzyNode.getSimilarity() < 0) {
throw new IllegalArgumentException("No "
+ FuzzyAttribute.class.getName() + " set in the config");
}
}