use of com.b2international.index.query.Expression in project snow-owl by b2ihealthcare.
the class SnomedEclRefinementEvaluator method eval.
/**
* Handles disjunctions in refinement part of refined expression constraints.
* @see https://confluence.ihtsdotools.org/display/DOCECL/6.4+Conjunction+and+Disjunction
*/
protected Promise<Expression> eval(final BranchContext context, OrRefinement or) {
return Promise.all(evaluate(context, or.getLeft()), evaluate(context, or.getRight())).then(input -> {
final Expression left = (Expression) input.get(0);
final Expression right = (Expression) input.get(1);
return Expressions.builder().should(left).should(right).build();
});
}
use of com.b2international.index.query.Expression in project snow-owl by b2ihealthcare.
the class SnomedEclRefinementEvaluator method eval.
/**
* Handles conjunctions in refinement part of refined expression constraints.
* @see https://confluence.ihtsdotools.org/display/DOCECL/6.4+Conjunction+and+Disjunction
*/
protected Promise<Expression> eval(final BranchContext context, AndRefinement and) {
return Promise.all(evaluate(context, and.getLeft()), evaluate(context, and.getRight())).then(input -> {
final Expression left = (Expression) input.get(0);
final Expression right = (Expression) input.get(1);
return Expressions.builder().filter(left).filter(right).build();
});
}
use of com.b2international.index.query.Expression in project snow-owl by b2ihealthcare.
the class SingleDocumentRevisionIndexSearchTest method searchWithMinimumShouldMatch.
@Test
public void searchWithMinimumShouldMatch() throws Exception {
final RevisionData first = new RevisionData(STORAGE_KEY1, "field1", "field1");
final RevisionData second = new RevisionData(STORAGE_KEY2, "field1", "field2");
indexRevision(MAIN, first, second);
final Expression expression = Expressions.builder().should(Expressions.exactMatch("field1", "field1")).should(Expressions.exactMatch("field2", "field2")).setMinimumNumberShouldMatch(2).build();
final Query<RevisionData> query = Query.select(RevisionData.class).where(expression).build();
final Iterable<RevisionData> matches = search(MAIN, query);
assertThat(matches).hasSize(1);
assertThat(matches).containsOnly(second);
}
use of com.b2international.index.query.Expression in project snow-owl by b2ihealthcare.
the class SnomedEclShortcutTest method queryMinusNestedAll.
@Test
public void queryMinusNestedAll() throws Exception {
final Expression actual = eval(ROOT_ID + " MINUS (*)");
final Expression expected = Expressions.matchNone();
assertEquals(expected, actual);
}
use of com.b2international.index.query.Expression in project snow-owl by b2ihealthcare.
the class SnomedEclShortcutTest method queryAndNestedAll.
@Test
public void queryAndNestedAll() throws Exception {
final Expression actual = eval(ROOT_ID + " AND (*)");
final Expression expected = SnomedConceptDocument.Expressions.id(ROOT_ID);
assertEquals(expected, actual);
}
Aggregations