Examples of XBooleanFilter


Examples of org.elasticsearch.common.lucene.search.XBooleanFilter

            for (String type : types) {
                termsFilter.addTerm(TypeFieldMapper.TERM_FACTORY.createTerm(type));
            }
            return termsFilter;
        } else {
            XBooleanFilter bool = new XBooleanFilter();
            for (String type : types) {
                DocumentMapper docMapper = documentMapper(type);
                if (docMapper == null) {
                    bool.add(new FilterClause(new TermFilter(TypeFieldMapper.TERM_FACTORY.createTerm(type)), BooleanClause.Occur.SHOULD));
                } else {
                    bool.add(new FilterClause(docMapper.typeFilter(), BooleanClause.Occur.SHOULD));
                }
            }
            return bool;
        }
    }
View Full Code Here

Examples of org.elasticsearch.common.lucene.search.XBooleanFilter

        IndexQueryParserService queryParser = queryParser();
        String query = copyToStringFromClasspath("/org/elasticsearch/index/query/bool-filter.json");
        Query parsedQuery = queryParser.parse(query).query();
        assertThat(parsedQuery, instanceOf(FilteredQuery.class));
        FilteredQuery filteredQuery = (FilteredQuery) parsedQuery;
        XBooleanFilter booleanFilter = (XBooleanFilter) filteredQuery.getFilter();

        // TODO get the content and test
    }
View Full Code Here

Examples of org.elasticsearch.common.lucene.search.XBooleanFilter

                throw new InvalidAliasNameException(index, aliases[0], "Unknown alias name was passed to alias Filter");
            }
            return indexAlias.parsedFilter();
        } else {
            // we need to bench here a bit, to see maybe it makes sense to use OrFilter
            XBooleanFilter combined = new XBooleanFilter();
            for (String alias : aliases) {
                IndexAlias indexAlias = alias(alias);
                if (indexAlias == null) {
                    // This shouldn't happen unless alias disappeared after filteringAliases was called.
                    throw new InvalidAliasNameException(index, aliases[0], "Unknown alias name was passed to alias Filter");
                }
                if (indexAlias.parsedFilter() != null) {
                    combined.add(new FilterClause(indexAlias.parsedFilter(), BooleanClause.Occur.SHOULD));
                } else {
                    // The filter might be null only if filter was removed after filteringAliases was called
                    return null;
                }
            }
            if (combined.getShouldFilters().size() == 0) {
                return null;
            }
            if (combined.getShouldFilters().size() == 1) {
                return combined.getShouldFilters().get(0);
            }
            return combined;
        }
    }
View Full Code Here

Examples of org.elasticsearch.common.lucene.search.XBooleanFilter

                    cacheKey = new CacheKeyFilter.Key(parser.text());
                }
            }
        }

        XBooleanFilter boolFilter = new XBooleanFilter();
        for (OpenFilterClause filterClause : clauses) {
            boolFilter.add(filterClause);
        }
        Filter filter = boolFilter;
        if (cache) {
            filter = parseContext.cacheFilter(filter, cacheKey);
        }
View Full Code Here

Examples of org.elasticsearch.common.lucene.search.XBooleanFilter

                } catch (IllegalAccessException e) {
                    // ignore
                }
            }
        } else if (sourceFilter instanceof XBooleanFilter) {
            XBooleanFilter booleanFilter = (XBooleanFilter) sourceFilter;
            for (Filter filter : booleanFilter.getMustFilters()) {
                flatten(filter, flatQueries);
            }
            for (Filter filter : booleanFilter.getNotFilters()) {
                flatten(filter, flatQueries);
            }
        }
    }
View Full Code Here

Examples of org.elasticsearch.common.lucene.search.XBooleanFilter

            DocumentMapper documentMapper = parseContext.mapperService().documentMapper(parentTypes.iterator().next());
            if (documentMapper != null) {
                parentFilter = documentMapper.typeFilter();
            }
        } else {
            XBooleanFilter parentsFilter = new XBooleanFilter();
            for (String parentTypeStr : parentTypes) {
                DocumentMapper documentMapper = parseContext.mapperService().documentMapper(parentTypeStr);
                if (documentMapper != null) {
                    parentsFilter.add(documentMapper.typeFilter(), BooleanClause.Occur.SHOULD);
                }
            }
            parentFilter = parentsFilter;
        }
View Full Code Here

Examples of org.elasticsearch.common.lucene.search.XBooleanFilter

       
        Filter filter;
        if (strategy instanceof RecursivePrefixTreeStrategy && shapeRelation == ShapeRelation.DISJOINT) {
            // this strategy doesn't support disjoint anymore: but it did before, including creating lucene fieldcache (!)
            // in this case, execute disjoint as exists && !intersects
            XBooleanFilter bool = new XBooleanFilter();
            Filter exists = ExistsFilterParser.newFilter(parseContext, fieldName, null);
            Filter intersects = strategy.makeFilter(GeoShapeQueryParser.getArgs(shape, ShapeRelation.INTERSECTS));
            bool.add(exists, BooleanClause.Occur.MUST);
            bool.add(intersects, BooleanClause.Occur.MUST_NOT);
            filter = bool;
        } else {
            filter = strategy.makeFilter(GeoShapeQueryParser.getArgs(shape, shapeRelation));
        }
View Full Code Here

Examples of org.elasticsearch.common.lucene.search.XBooleanFilter

        Filter nullFilter = null;

        MapperService.SmartNameFieldMappers nonNullFieldMappers = null;

        if (existence) {
            XBooleanFilter boolFilter = new XBooleanFilter();
            for (String field : fields) {
                MapperService.SmartNameFieldMappers smartNameFieldMappers = parseContext.smartFieldMappers(field);
                if (smartNameFieldMappers != null) {
                    nonNullFieldMappers = smartNameFieldMappers;
                }
                Filter filter = null;
                if (fieldNamesMapper != null && fieldNamesMapper.mapper().fieldType().indexOptions() != IndexOptions.NONE) {
                    final String f;
                    if (smartNameFieldMappers != null && smartNameFieldMappers.hasMapper()) {
                        f = smartNameFieldMappers.mapper().names().indexName();
                    } else {
                        f = field;
                    }
                    filter = fieldNamesMapper.mapper().termFilter(f, parseContext);
                }
                // if _field_names are not indexed, we need to go the slow way
                if (filter == null && smartNameFieldMappers != null && smartNameFieldMappers.hasMapper()) {
                    filter = smartNameFieldMappers.mapper().rangeFilter(null, null, true, true, parseContext);
                }
                if (filter == null) {
                    filter = new TermRangeFilter(field, null, null, true, true);
                }
                boolFilter.add(filter, BooleanClause.Occur.SHOULD);
            }

            // we always cache this one, really does not change... (exists)
            // its ok to cache under the fieldName cacheKey, since its per segment and the mapping applies to this data on this segment...
            existenceFilter = parseContext.cacheFilter(boolFilter, new CacheKeyFilter.Key("$exists$" + fieldPattern));
            existenceFilter = new NotFilter(existenceFilter);
            // cache the not filter as well, so it will be faster
            existenceFilter = parseContext.cacheFilter(existenceFilter, new CacheKeyFilter.Key("$missing$" + fieldPattern));
        }

        if (nullValue) {
            for (String field : fields) {
                MapperService.SmartNameFieldMappers smartNameFieldMappers = parseContext.smartFieldMappers(field);
                if (smartNameFieldMappers != null && smartNameFieldMappers.hasMapper()) {
                    nullFilter = smartNameFieldMappers.mapper().nullValueFilter();
                    if (nullFilter != null) {
                        // cache the not filter as well, so it will be faster
                        nullFilter = parseContext.cacheFilter(nullFilter, new CacheKeyFilter.Key("$null$" + fieldPattern));
                    }
                }
            }
        }

        Filter filter;
        if (nullFilter != null) {
            if (existenceFilter != null) {
                XBooleanFilter combined = new XBooleanFilter();
                combined.add(existenceFilter, BooleanClause.Occur.SHOULD);
                combined.add(nullFilter, BooleanClause.Occur.SHOULD);
                // cache the not filter as well, so it will be faster
                filter = parseContext.cacheFilter(combined, null);
            } else {
                filter = nullFilter;
            }
View Full Code Here

Examples of org.elasticsearch.common.lucene.search.XBooleanFilter

                } catch (IllegalAccessException e) {
                    // ignore
                }
            }
        } else if (sourceFilter instanceof XBooleanFilter) {
            XBooleanFilter booleanFilter = (XBooleanFilter) sourceFilter;
            for (FilterClause clause : booleanFilter.clauses()) {
                if (clause.getOccur() == BooleanClause.Occur.MUST || clause.getOccur() == BooleanClause.Occur.SHOULD) {
                    flatten(clause.getFilter(), reader, flatQueries);
                }
            }
        }
View Full Code Here

Examples of org.elasticsearch.common.lucene.search.XBooleanFilter

        IndexQueryParserService queryParser = queryParser();
        Query parsedQuery = queryParser.parse(filteredQuery(termQuery("name.first", "shay"), boolFilter().must(termFilter("name.first", "shay1"), termFilter("name.first", "shay4")).mustNot(termFilter("name.first", "shay2")).should(termFilter("name.first", "shay3")))).query();

        assertThat(parsedQuery, instanceOf(FilteredQuery.class));
        FilteredQuery filteredQuery = (FilteredQuery) parsedQuery;
        XBooleanFilter booleanFilter = (XBooleanFilter) filteredQuery.getFilter();

        Iterator<FilterClause> iterator = booleanFilter.iterator();
        assertThat(iterator.hasNext(), equalTo(true));
        FilterClause clause = iterator.next();
        assertThat(clause.getOccur(), equalTo(BooleanClause.Occur.MUST));
        assertThat(((TermFilter) clause.getFilter()).getTerm(), equalTo(new Term("name.first", "shay1")));
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.