package org.apache.lucene.queryparser.flexible.aqp.builders; import java.util.HashMap; import java.util.Map; import org.apache.lucene.queryparser.flexible.core.QueryNodeException; import org.apache.lucene.queryparser.flexible.core.config.QueryConfigHandler; import org.apache.lucene.queryparser.flexible.core.nodes.QueryNode; import org.apache.solr.search.AqpFunctionQParser; import org.apache.solr.search.ValueSourceParser; /** * * This here is a place for our own custom functions implemented * as ValueSource (ie. the same as SOLR functions). This is * different from the {@link AqpAdsabsSubQueryProvider} * */ public class AqpAdsabsFunctionProvider implements AqpFunctionQueryBuilderProvider { public static Map<String, ValueSourceParser> parsers = new HashMap<String, ValueSourceParser>(); static { // currently empty }; public AqpFunctionQueryBuilder getBuilder(String funcName, QueryNode node, QueryConfigHandler config) throws QueryNodeException { ValueSourceParser vsProvider = parsers.get(funcName); if (vsProvider == null) return null; // the params are all null because we know we are not using solr request handler params AqpFunctionQParser queryParser = new AqpFunctionQParser(null, null, null, null); return new AqpFunctionQueryTreeBuilder(vsProvider, queryParser); } }