public static String[] setTypesWithPrevious(String[] types) { String[] old = typesContext.get(); setTypes(types); return old; }
public InnerQuery(QueryParseContext parseContext1, @Nullable String... types) throws IOException { super(parseContext1); if (types != null) { String[] origTypes = QueryParseContext.setTypesWithPrevious(types); try { query = parseContext1.parseInnerQuery(); queryParsed = true; } finally { QueryParseContext.setTypes(origTypes); } } else { BytesReference innerBytes = XContentFactory.smileBuilder().copyCurrentStructure(parseContext1.parser()).bytes(); super.bytes(innerBytes); } }
/** * Use the captured bytes to parse the inner query using the specified * types. The original QueryParseContext's parser is switched during this * parsing, so this method is NOT thread-safe. * @param types types to be used during the inner query parsing * @return {@link Query} parsed from the bytes captured in {@code freeze()} */ public Query asQuery(String... types) throws IOException { BytesReference br = this.bytes(); assert br != null : "innerBytes must be set with .bytes(bytes) or .freeze() before parsing"; XContentParser innerParser = XContentHelper.createParser(br); String[] origTypes = QueryParseContext.setTypesWithPrevious(types); XContentParser old = parseContext.parser(); parseContext.parser(innerParser); try { return parseContext.parseInnerQuery(); } finally { parseContext.parser(old); QueryParseContext.setTypes(origTypes); } }
public static void setCurrent(SearchContext value) { current.set(value); QueryParseContext.setTypes(value.types()); }
private Query parseQuery(String type, BytesReference querySource, XContentParser parser) { if (type == null) { if (parser != null) { return queryParserService.parse(parser).query(); } else { return queryParserService.parse(querySource).query(); } } String[] previousTypes = QueryParseContext.setTypesWithPrevious(new String[]{type}); try { if (parser != null) { return queryParserService.parse(parser).query(); } else { return queryParserService.parse(querySource).query(); } } finally { QueryParseContext.setTypes(previousTypes); } }
try { queryParser = XContentFactory.xContent(querySource).createParser(querySource); QueryParseContext.setTypes(request.types()); ParsedQuery parsedQuery = orderByOperation.getParsedQuery(queryParser, indexService); if (parsedQuery != null) {
} finally { if (type != null) { QueryParseContext.setTypes(previousTypes);
if (source != null && source.length() > 0) { try { QueryParseContext.setTypes(request.types()); context.parsedQuery(indexService.queryParserService().parseQuery(source)); } finally {