Search in sources :

Example 1 with BooleanFilter

use of com.enonic.xp.query.filter.BooleanFilter in project xp by enonic.

the class JsonToFilterMapperTest method array_on_root.

@Test
public void array_on_root() throws Exception {
    final List<Map<String, Object>> existsFilters = new ArrayList<>();
    existsFilters.add(createExistsFilter());
    existsFilters.add(createExistsFilter());
    existsFilters.add(createExistsFilter());
    final Filters filters = com.enonic.xp.lib.common.JsonToFilterMapper.create(existsFilters);
    assertTrue(filters.get(0) instanceof BooleanFilter);
    final ImmutableSet<Filter> mustFilters = ((BooleanFilter) filters.get(0)).getMust();
    assertEquals(3, mustFilters.size());
}
Also used : BooleanFilter(com.enonic.xp.query.filter.BooleanFilter) Filters(com.enonic.xp.query.filter.Filters) IdFilter(com.enonic.xp.query.filter.IdFilter) ExistsFilter(com.enonic.xp.query.filter.ExistsFilter) ValueFilter(com.enonic.xp.query.filter.ValueFilter) BooleanFilter(com.enonic.xp.query.filter.BooleanFilter) Filter(com.enonic.xp.query.filter.Filter) ArrayList(java.util.ArrayList) HashMap(java.util.HashMap) Map(java.util.Map) Test(org.junit.jupiter.api.Test)

Example 2 with BooleanFilter

use of com.enonic.xp.query.filter.BooleanFilter in project xp by enonic.

the class JsonToFilterMapperTest method boolean_filter.

@SuppressWarnings("unchecked")
@Test
public void boolean_filter() throws Exception {
    Map<String, Object> filter = new HashMap<>();
    final Map<String, Object> boolFilter = new HashMap<>();
    boolFilter.put("must", List.of(createExistsFilter(), createExistsFilter()));
    boolFilter.put("mustNot", List.of(createExistsFilter()));
    boolFilter.put("should", List.of(createExistsFilter(), createExistsFilter(), createExistsFilter()));
    filter.put("boolean", boolFilter);
    final Filters filters = com.enonic.xp.lib.common.JsonToFilterMapper.create(filter);
    assertTrue(filters.get(0) instanceof BooleanFilter);
    final BooleanFilter booleanFilter = (BooleanFilter) filters.get(0);
    final ImmutableSet<Filter> mustFilters = booleanFilter.getMust();
    assertEquals(2, mustFilters.size());
    assertTrue(mustFilters.iterator().next() instanceof ExistsFilter);
    assertTrue(mustFilters.iterator().next() instanceof ExistsFilter);
    final ImmutableSet<Filter> mustNotFilters = booleanFilter.getMustNot();
    assertEquals(1, mustNotFilters.size());
    final ImmutableSet<Filter> shouldFilters = booleanFilter.getShould();
    assertEquals(3, shouldFilters.size());
}
Also used : BooleanFilter(com.enonic.xp.query.filter.BooleanFilter) ExistsFilter(com.enonic.xp.query.filter.ExistsFilter) Filters(com.enonic.xp.query.filter.Filters) HashMap(java.util.HashMap) IdFilter(com.enonic.xp.query.filter.IdFilter) ExistsFilter(com.enonic.xp.query.filter.ExistsFilter) ValueFilter(com.enonic.xp.query.filter.ValueFilter) BooleanFilter(com.enonic.xp.query.filter.BooleanFilter) Filter(com.enonic.xp.query.filter.Filter) Test(org.junit.jupiter.api.Test)

Example 3 with BooleanFilter

use of com.enonic.xp.query.filter.BooleanFilter in project xp by enonic.

the class AbstractContentCommand method createFilters.

protected Filters createFilters() {
    if (shouldFilterScheduledPublished()) {
        final BooleanFilter notPendingFilter = BooleanFilter.create().mustNot(RangeFilter.create().fieldName(ContentIndexPath.PUBLISH_FROM.getPath()).from(ValueFactory.newDateTime(Instant.now())).build()).build();
        final BooleanFilter notExpiredFilter = BooleanFilter.create().mustNot(RangeFilter.create().fieldName(ContentIndexPath.PUBLISH_TO.getPath()).to(ValueFactory.newDateTime(Instant.now())).build()).build();
        return Filters.from(notPendingFilter, notExpiredFilter);
    }
    return Filters.from();
}
Also used : BooleanFilter(com.enonic.xp.query.filter.BooleanFilter)

Example 4 with BooleanFilter

use of com.enonic.xp.query.filter.BooleanFilter in project xp by enonic.

the class MultiRepoSearchSourceAdaptorTest method multiple_repos.

@Test
public void multiple_repos() throws Exception {
    final ESSource source = MultiRepoSearchSourceAdaptor.adapt(MultiRepoSearchSource.create().add(SingleRepoSearchSource.create().repositoryId(RepositoryId.from("repo1")).branch(Branch.from("branch1")).acl(PrincipalKeys.from(PrincipalKey.ofAnonymous())).build()).add(SingleRepoSearchSource.create().repositoryId(RepositoryId.from("repo2")).branch(Branch.from("branch2")).acl(PrincipalKeys.from(PrincipalKey.ofAnonymous())).build()).build());
    assertTrue(source.getIndexNames().containsAll(Arrays.asList("search-repo1", "search-repo2")));
    assertTrue(source.getIndexTypes().containsAll(Arrays.asList("branch1", "branch2")));
    final Filters filters = source.getFilters();
    assertEquals(1, filters.getSize());
    final Filter allFilters = filters.get(0);
    assert (allFilters instanceof BooleanFilter);
    final ImmutableSet<Filter> shouldFilters = ((BooleanFilter) allFilters).getMust();
    assertEquals(2, shouldFilters.size());
}
Also used : BooleanFilter(com.enonic.xp.query.filter.BooleanFilter) Filters(com.enonic.xp.query.filter.Filters) BooleanFilter(com.enonic.xp.query.filter.BooleanFilter) Filter(com.enonic.xp.query.filter.Filter) Test(org.junit.jupiter.api.Test)

Example 5 with BooleanFilter

use of com.enonic.xp.query.filter.BooleanFilter in project xp by enonic.

the class SetPublishInfoCommand method findNodesWithoutPublishFirstAndFrom.

private NodeIds findNodesWithoutPublishFirstAndFrom(final NodeIds nodesToPush) {
    if (nodesToPush.isEmpty()) {
        return NodeIds.empty();
    }
    final BooleanFilter containPublishFirstAndFromFilter = BooleanFilter.create().must(ExistsFilter.create().fieldName(ContentIndexPath.PUBLISH_FIRST.getPath()).build()).must(ExistsFilter.create().fieldName(ContentIndexPath.PUBLISH_FROM.getPath()).build()).build();
    final NodeQuery query = NodeQuery.create().addQueryFilter(BooleanFilter.create().mustNot(containPublishFirstAndFromFilter).must(IdFilter.create().fieldName(ContentIndexPath.ID.getPath()).values(nodesToPush).build()).build()).size(NodeQuery.ALL_RESULTS_SIZE_FLAG).build();
    final FindNodesByQueryResult result = this.nodeService.findByQuery(query);
    return result.getNodeIds();
}
Also used : BooleanFilter(com.enonic.xp.query.filter.BooleanFilter) FindNodesByQueryResult(com.enonic.xp.node.FindNodesByQueryResult) NodeQuery(com.enonic.xp.node.NodeQuery)

Aggregations

BooleanFilter (com.enonic.xp.query.filter.BooleanFilter)6 Filter (com.enonic.xp.query.filter.Filter)4 Filters (com.enonic.xp.query.filter.Filters)4 Test (org.junit.jupiter.api.Test)4 ExistsFilter (com.enonic.xp.query.filter.ExistsFilter)3 IdFilter (com.enonic.xp.query.filter.IdFilter)3 ValueFilter (com.enonic.xp.query.filter.ValueFilter)3 HashMap (java.util.HashMap)3 FindNodesByQueryResult (com.enonic.xp.node.FindNodesByQueryResult)1 NodeQuery (com.enonic.xp.node.NodeQuery)1 ArrayList (java.util.ArrayList)1 Map (java.util.Map)1