public void filter() throws IOException { if (path != null) { setPathLevel(); try { innerFilter = parseContext.parseInnerFilter(); } finally { resetPathLevel(); } filterParsed = true; } else { source = XContentFactory.smileBuilder().copyCurrentStructure(parseContext.parser()).bytes(); } filterFound = true; }
nestedHelper = new NestedInnerQueryParseSupport(parser, context); nestedHelper.filter(); } else { fieldName = currentName; } else if ("nested_path".equals(currentName) || "nestedPath".equals(currentName)) { if (nestedHelper == null) { nestedHelper = new NestedInnerQueryParseSupport(parser, context); nestedHelper.setPath(parser.text()); } else { GeoPoint point = new GeoPoint(); if (nestedHelper != null && nestedHelper.getPath() != null) { if (nestedHelper.filterFound()) { innerDocumentsFilter = nestedHelper.getInnerFilter(); } else { innerDocumentsFilter = nestedHelper.getNestedObjectMapper().nestedTypeFilter();
if (nestedHelper != null && nestedHelper.getPath() != null) { BitSetProducer rootDocumentsFilter = context.bitsetFilterCache().getBitSetProducer(Queries.newNonNestedFilter()); Query innerDocumentsFilter; if (nestedHelper.filterFound()) { innerDocumentsFilter = nestedHelper.getInnerFilter(); } else { innerDocumentsFilter = nestedHelper.getNestedObjectMapper().nestedTypeFilter();
} else if ("nested_path".equals(innerJsonName) || "nestedPath".equals(innerJsonName)) { if (nestedFilterParseHelper == null) { nestedFilterParseHelper = new NestedInnerQueryParseSupport(parser, context); nestedFilterParseHelper.setPath(parser.text()); } else { throw new IllegalArgumentException("sort option [" + innerJsonName + "] not supported"); if ("nested_filter".equals(innerJsonName) || "nestedFilter".equals(innerJsonName)) { if (nestedFilterParseHelper == null) { nestedFilterParseHelper = new NestedInnerQueryParseSupport(parser, context); nestedFilterParseHelper.filter(); } else { throw new IllegalArgumentException("sort option [" + innerJsonName + "] not supported");
} else if ("nested_filter".equals(currentName) || "nestedFilter".equals(currentName)) { if (nestedHelper == null) { nestedHelper = new NestedInnerQueryParseSupport(parser, context); nestedHelper.filter(); } else if ("nested_path".equals(currentName) || "nestedPath".equals(currentName)) { if (nestedHelper == null) { nestedHelper = new NestedInnerQueryParseSupport(parser, context); nestedHelper.setPath(parser.text()); if (nestedHelper != null && nestedHelper.getPath() != null) { BitSetProducer rootDocumentsFilter = context.bitsetFilterCache().getBitSetProducer(Queries.newNonNestedFilter()); Query innerDocumentsFilter; if (nestedHelper.filterFound()) { innerDocumentsFilter = nestedHelper.getInnerFilter(); } else { innerDocumentsFilter = nestedHelper.getNestedObjectMapper().nestedTypeFilter();
public void query() throws IOException { if (path != null) { setPathLevel(); try { innerQuery = parseContext.parseInnerQuery(); } finally { resetPathLevel(); } queryParsed = true; } else { source = XContentFactory.smileBuilder().copyCurrentStructure(parseContext.parser()).bytes(); } queryFound = true; }
public Query getInnerFilter() throws IOException { if (filterParsed) { return innerFilter; } else { if (path == null) { throw new QueryParsingException(parseContext, "[nested] requires 'path' field"); } if (!filterFound) { throw new QueryParsingException(parseContext, "[nested] requires either 'query' or 'filter' field"); } setPathLevel(); XContentParser old = parseContext.parser(); try { XContentParser innerParser = XContentHelper.createParser(source); parseContext.parser(innerParser); innerFilter = parseContext.parseInnerFilter(); filterParsed = true; return innerFilter; } finally { resetPathLevel(); parseContext.parser(old); } } }
public Query getInnerQuery() throws IOException { if (queryParsed) { return innerQuery; } else { if (path == null) { throw new QueryParsingException(parseContext, "[nested] requires 'path' field"); } if (!queryFound) { throw new QueryParsingException(parseContext, "[nested] requires either 'query' or 'filter' field"); } XContentParser old = parseContext.parser(); try { XContentParser innerParser = XContentHelper.createParser(source); parseContext.parser(innerParser); setPathLevel(); try { innerQuery = parseContext.parseInnerQuery(); } finally { resetPathLevel(); } queryParsed = true; return innerQuery; } finally { parseContext.parser(old); } } }