/** * Returns the narrowed down explicit types, or, if not set, all types. */ public Collection<String> queryTypes() { String[] types = getTypes(); if (types == null || types.length == 0) { return mapperService().types(); } if (types.length == 1 && types[0].equals("_all")) { return mapperService().types(); } return Arrays.asList(types); }
protected Analyzer getAnalyzer(MappedFieldType fieldType) { if (this.analyzer == null) { if (fieldType != null) { return parseContext.getSearchAnalyzer(fieldType); } return parseContext.mapperService().searchAnalyzer(); } else { Analyzer analyzer = parseContext.mapperService().analysisService().analyzer(this.analyzer); if (analyzer == null) { throw new IllegalArgumentException("No analyzer found for [" + this.analyzer + "]"); } return analyzer; } }
/** Gets the search analyzer for the given field, or the default if there is none present for the field * TODO: remove this by moving defaults into mappers themselves */ public Analyzer getSearchAnalyzer(MappedFieldType fieldType) { if (fieldType.searchAnalyzer() != null) { return fieldType.searchAnalyzer(); } return mapperService().searchAnalyzer(); }
public SearchLookup lookup() { SearchContext current = SearchContext.current(); if (current != null) { return current.lookup(); } if (lookup == null) { lookup = new SearchLookup(mapperService(), indexQueryParser.fieldDataService, null); } return lookup; }
/** Gets the search quote nalyzer for the given field, or the default if there is none present for the field * TODO: remove this by moving defaults into mappers themselves */ public Analyzer getSearchQuoteAnalyzer(MappedFieldType fieldType) { if (fieldType.searchQuoteAnalyzer() != null) { return fieldType.searchQuoteAnalyzer(); } return mapperService().searchQuoteAnalyzer(); }
@Override public Query termsQuery(List values, @Nullable QueryParseContext context) { if (context == null) { return super.termsQuery(values, context); } List<String> types = new ArrayList<>(context.mapperService().types().size()); for (DocumentMapper documentMapper : context.mapperService().docMappers(false)) { if (!documentMapper.parentFieldMapper().active()) { types.add(documentMapper.type()); } } List<BytesRef> bValues = new ArrayList<>(values.size()); for (Object value : values) { BytesRef bValue = BytesRefs.toBytesRef(value); if (Uid.hasDelimiter(bValue)) { bValues.add(bValue); } else { // we use all non child types, cause we don't know if its exact or not... for (String type : types) { bValues.add(Uid.createUidAsBytes(type, bValue)); } } } return new TermsQuery(names().indexName(), bValues); } }
private InnerHitsContext.ParentChildInnerHits parseParentChild(XContentParser parser, QueryParseContext parseContext, SearchContext searchContext, String type) throws Exception { ParseResult parseResult = parseSubSearchContext(searchContext, parseContext, parser); DocumentMapper documentMapper = searchContext.mapperService().documentMapper(type); if (documentMapper == null) { throw new IllegalArgumentException("type [" + type + "] doesn't exist"); } return new InnerHitsContext.ParentChildInnerHits(parseResult.context(), parseResult.query(), parseResult.childInnerHits(), parseContext.mapperService(), documentMapper); }
@Override public Query parse(QueryParseContext parseContext) throws IOException, QueryParsingException { XContentParser parser = parseContext.parser(); String query = this.getQueryString(parser); return this.parse(SirenFieldMapper.SIREN_SOURCE, query, parseContext.analysisService(), parseContext.mapperService(), parseContext.index()); }
DocumentMapper documentMapper = parseContext.mapperService().documentMapper(type.utf8ToString()); if (documentMapper == null) { filter = new TermQuery(new Term(TypeFieldMapper.NAME, type));
types = parseContext.queryTypes(); } else if (types.size() == 1 && Iterables.getFirst(types, null).equals("_all")) { types = parseContext.mapperService().types();
static Query createParentQuery(Query innerQuery, String parentType, boolean score, QueryParseContext parseContext, InnerHitsSubSearchContext innerHits) throws IOException { DocumentMapper parentDocMapper = parseContext.mapperService().documentMapper(parentType); if (parentDocMapper == null) { throw new QueryParsingException(parseContext, "[" + NAME + "] query configured 'parent_type' [" + parentType InnerHitsContext.ParentChildInnerHits parentChildInnerHits = new InnerHitsContext.ParentChildInnerHits(innerHits.getSubSearchContext(), parsedQuery, null, parseContext.mapperService(), parentDocMapper); String name = innerHits.getName() != null ? innerHits.getName() : parentType; parseContext.addInnerHits(name, parentChildInnerHits); for (DocumentMapper documentMapper : parseContext.mapperService().docMappers(false)) { ParentFieldMapper parentFieldMapper = documentMapper.parentFieldMapper(); if (parentFieldMapper.active() && parentType.equals(parentFieldMapper.type())) { DocumentMapper documentMapper = parseContext.mapperService().documentMapper(childTypes.iterator().next()); childrenQuery = documentMapper.typeFilter(); } else { BooleanQuery.Builder childrenQueryBuilder = new BooleanQuery.Builder(); for (String childType : childTypes) { DocumentMapper documentMapper = parseContext.mapperService().documentMapper(childType); childrenQueryBuilder.add(documentMapper.typeFilter(), BooleanClause.Occur.SHOULD);
analyzer = parseContext.mapperService().searchAnalyzer(); analyzer = parseContext.mapperService().analysisService().analyzer(queryAnalyzer); if (analyzer == null) { throw new IllegalArgumentException("No analyzer found for [" + queryAnalyzer + "]");
Map<String, Float> newFieldsBoosts = handleFieldsMatchPattern(parseContext.mapperService(), fieldNameWithBoosts);
for (String fieldName : parseContext.mapperService().simpleMatchToIndexNames(fField)) { fieldsAndWeights.put(fieldName, fBoost); analyzer = parseContext.mapperService().searchAnalyzer();
for (String field : parseContext.mapperService().simpleMatchToIndexNames(fField)) { qpSettings.fields().add(field); if (fBoost != -1) { throw new QueryParsingException(parseContext, "query_string must be provided with a [query]"); qpSettings.defaultAnalyzer(parseContext.mapperService().searchAnalyzer()); qpSettings.defaultQuoteAnalyzer(parseContext.mapperService().searchQuoteAnalyzer());
DocumentMapper childDocMapper = parseContext.mapperService().documentMapper(childType); if (childDocMapper == null) { throw new QueryParsingException(parseContext, "[has_child] No mapping for for type [" + childType + "]"); InnerHitsContext.ParentChildInnerHits parentChildInnerHits = new InnerHitsContext.ParentChildInnerHits(innerHits.getSubSearchContext(), parsedQuery, null, parseContext.mapperService(), childDocMapper); String name = innerHits.getName() != null ? innerHits.getName() : childType; parseContext.addInnerHits(name, parentChildInnerHits); DocumentMapper parentDocMapper = parseContext.mapperService().documentMapper(parentType); if (parentDocMapper == null) { throw new QueryParsingException(parseContext, "[has_child] Type [" + childType + "] points to a non existent parent type ["
public static Query newFilter(QueryParseContext parseContext, String fieldPattern, String queryName) { final FieldNamesFieldMapper.FieldNamesFieldType fieldNamesFieldType = (FieldNamesFieldMapper.FieldNamesFieldType)parseContext.mapperService().fullName(FieldNamesFieldMapper.NAME); if (fieldNamesFieldType == null) {
analyzer = parseContext.mapperService().searchAnalyzer();
return this.parse(queryField, query, parseContext.analysisService(), parseContext.mapperService(), parseContext.index());
final FieldNamesFieldMapper.FieldNamesFieldType fieldNamesFieldType = (FieldNamesFieldMapper.FieldNamesFieldType)parseContext.mapperService().fullName(FieldNamesFieldMapper.NAME); if (fieldNamesFieldType == null) {