final FilterBuilder selectAllFilter = FilterBuilders.boolFilter().must( FilterBuilders.matchAllFilter()) .must( notFilter ); filterBuilders.push( selectAllFilter );
protected FilterBuilder getFilterForHasNotPropertyContainer(HasNotPropertyContainer hasNotProperty) { PropertyDefinition[] propertyDefinitions = StreamSupport.stream(hasNotProperty.getKeys().spliterator(), false) .map(this::getPropertyDefinition) .filter(Objects::nonNull) .toArray(PropertyDefinition[]::new); if (propertyDefinitions.length == 0) { // If we can't find a property this means none of them are defined on the graph return FilterBuilders.matchAllFilter(); } List<FilterBuilder> filters = new ArrayList<>(); for (PropertyDefinition propDef : propertyDefinitions) { String[] propertyNames = getPropertyNames(propDef.getPropertyName()); for (String propertyName : propertyNames) { filters.add(FilterBuilders.notFilter(FilterBuilders.existsFilter(propertyName))); if (propDef.getDataType().equals(GeoPoint.class)) { filters.add(FilterBuilders.notFilter(FilterBuilders.existsFilter(propertyName + ElasticsearchSingleDocumentSearchIndex.GEO_PROPERTY_NAME_SUFFIX))); } else if (isExactMatchPropertyDefinition(propDef)) { filters.add(FilterBuilders.notFilter(FilterBuilders.existsFilter(propertyName + ElasticsearchSingleDocumentSearchIndex.EXACT_MATCH_PROPERTY_NAME_SUFFIX))); } } } if (filters.isEmpty()) { // If we didn't add any filters, this means it doesn't exist on any elements so the hasNot query should match all records. return FilterBuilders.matchAllFilter(); } return getSingleFilterOrAndTheFilters(filters, hasNotProperty); }
if (propertyNames.length == 0) { if (contains.equals(Contains.NOT_IN)) { return FilterBuilders.matchAllFilter();
return FilterBuilders.matchAllFilter();
FilterBuilders.matchAllFilter()).join(false); TermsFacetBuilder facetFilter = FacetBuilders.termsFacet(facetCode) .field(SearchDocumentFieldName.SPECIFICATIONS.getFieldName() + "." + SearchDocumentFieldName.RESOLUTION.getFieldName()) FilterBuilders.matchAllFilter()).join(false); TermsFacetBuilder facetFilter = FacetBuilders.termsFacet(facetCode) .field(SearchDocumentFieldName.SPECIFICATIONS.getFieldName() + "." + SearchDocumentFieldName.MEMORY.getFieldName())
SearchDocumentFieldName.SPECIFICATIONS .getFieldName(), FilterBuilders.matchAllFilter()).join(false); final TermsFacetBuilder facetFilter = FacetBuilders .termsFacet(facetCode) SearchDocumentFieldName.SPECIFICATIONS .getFieldName(), FilterBuilders.matchAllFilter()).join(false); final TermsFacetBuilder facetFilter = FacetBuilders .termsFacet(facetCode)