tempJunction.should(new TermQuery(new Term("categoryId", categoryId.toString()))); termination.must(tempJunction.createQuery()); tempJunction.should(new TermQuery(new Term("modelId", modelId))); termination.must(tempJunction.createQuery());
tempJunction.should(new TermQuery(new Term("categoryId", categoryId.toString()))); termination.must(tempJunction.createQuery()); tempJunction.should(new TermQuery(new Term("modelId", modelId))); termination.must(tempJunction.createQuery());
Query luceneQuery = bool.createQuery();
Query luceneQuery = bool.createQuery();
@Override public Query getQuery() { BooleanJunction<BooleanJunction> booleanJunction = builder.bool(); for ( Predicate<Query> predicate : children ) { booleanJunction.should( predicate.getQuery() ); } return booleanJunction.createQuery(); } }
@Override public Query visit(OrExpr orExpr) { BooleanJunction<BooleanJunction> booleanJunction = queryBuilder.bool(); for (BooleanExpr c : orExpr.getChildren()) { Query transformedChild = c.acceptVisitor(this); booleanJunction.should(transformedChild); } return booleanJunction.createQuery(); }
@Override public Query visit(OrExpr orExpr) { BooleanJunction<BooleanJunction> booleanJunction = queryBuilder.bool(); for (BooleanExpr c : orExpr.getChildren()) { Query transformedChild = c.acceptVisitor(this); booleanJunction.should(transformedChild); } return booleanJunction.createQuery(); }
@Override public Query visit(NotExpr notExpr) { Query transformedChild = notExpr.getChild().acceptVisitor(this); return queryBuilder.bool().must(transformedChild).not().createQuery(); }
@SuppressWarnings({ "rawtypes" }) private FullTextQuery createFullTextQueryForfindExactByAttribute(Map<String, String> eqSentenceOnField) { FullTextSession fullTextSession = getFullTextSession(); QueryBuilder qb = getQueryBuilder(fullTextSession); BooleanJunction<BooleanJunction> combinedQuery = qb.bool(); combinedQuery = addMustPhraseWithAttributesOnFields(eqSentenceOnField, qb, combinedQuery); FullTextQuery fullTextQuery = fullTextSession.createFullTextQuery(combinedQuery.createQuery()); return fullTextQuery; }
@SuppressWarnings({ "rawtypes" }) private FullTextQuery createFullTextQueryForfindNotExactByAttributeWKeywords(Map<String, String> eqSentenceOnField) { FullTextSession fullTextSession = getFullTextSession(); QueryBuilder qb = getQueryBuilder(fullTextSession); BooleanJunction<BooleanJunction> combinedQuery = qb.bool(); combinedQuery = addShouldKeywordsWithAttributesOnFields(eqSentenceOnField, qb, combinedQuery); FullTextQuery fullTextQuery = fullTextSession.createFullTextQuery(combinedQuery.createQuery()); return fullTextQuery; }
@Override public Query visit(NotExpr notExpr) { Query transformedChild = notExpr.getChild().acceptVisitor(this); return queryBuilder.bool().must(transformedChild).not().createQuery(); }
@SuppressWarnings({ "rawtypes" }) private FullTextQuery createFullTextQueryForfindMixedByAttributeWKeywords(Map<String, String> eqSentenceOnField, Map<String, String> eqMustSentenceOnField) { FullTextSession fullTextSession = getFullTextSession(); QueryBuilder qb = getQueryBuilder(fullTextSession); BooleanJunction<BooleanJunction> combinedQuery = qb.bool(); combinedQuery = addShouldWMustKeywordsWithAttributesOnFields(eqSentenceOnField,eqMustSentenceOnField, qb, combinedQuery); FullTextQuery fullTextQuery = fullTextSession.createFullTextQuery(combinedQuery.createQuery()); return fullTextQuery; }
@SuppressWarnings({ "rawtypes" }) private FullTextQuery createFullTextQueryForfindNotExactByAttribute(Map<String, String> eqSentenceOnField) { FullTextSession fullTextSession = getFullTextSession(); QueryBuilder qb = getQueryBuilder(fullTextSession); BooleanJunction<BooleanJunction> combinedQuery = qb.bool(); combinedQuery = addShouldPhraseWithAttributesOnFields(eqSentenceOnField, qb, combinedQuery); FullTextQuery fullTextQuery = fullTextSession.createFullTextQuery(combinedQuery.createQuery()); return fullTextQuery; }
@SuppressWarnings({ "rawtypes" }) private FullTextQuery createFullTextQueryForfindMixedByAttribute(Map<String, String> eqSentenceOnField, Map<String, String> eqMustSentenceOnField) { FullTextSession fullTextSession = getFullTextSession(); QueryBuilder qb = getQueryBuilder(fullTextSession); BooleanJunction<BooleanJunction> combinedQuery = qb.bool(); combinedQuery = addShouldWMustPhraseWithAttributesOnFields(eqSentenceOnField,eqMustSentenceOnField, qb, combinedQuery); FullTextQuery fullTextQuery = fullTextSession.createFullTextQuery(combinedQuery.createQuery()); return fullTextQuery; }
@SuppressWarnings("rawtypes") private FullTextQuery createFullTextQueryForfindMultiFieldSameAttributesAndExactByAttributes(Map<String, Set<String>> attributeForMultipleFieldsMap, Map<String, String> eqSentenceOnField) { FullTextSession fullTextSession = getFullTextSession(); QueryBuilder qb = getQueryBuilder(fullTextSession); BooleanJunction<BooleanJunction> combinedQuery = qb.bool(); combinedQuery = addMustPhraseWithAttributesOnFields(eqSentenceOnField, qb, combinedQuery); combinedQuery = addMustPhraseWithMultiFieldOnAttribute(attributeForMultipleFieldsMap, qb, combinedQuery); FullTextQuery fullTextQuery = fullTextSession.createFullTextQuery(combinedQuery.createQuery()); return fullTextQuery; }
@SuppressWarnings("rawtypes") private FullTextQuery createFullTextQueryForfindStartingUsingWildcardAndExactByAttributes(Map<String, String> startSentenceOnField, Map<String, String> eqSentenceOnField) { FullTextSession fullTextSession = getFullTextSession(); QueryBuilder qb = getQueryBuilder(fullTextSession); BooleanJunction<BooleanJunction> combinedQuery = qb.bool(); combinedQuery = addMustPhraseWithAttributesOnFields(eqSentenceOnField, qb, combinedQuery); combinedQuery = addMustWildcardWithStartingAttributesOnFields(startSentenceOnField, qb, combinedQuery); FullTextQuery fullTextQuery = fullTextSession.createFullTextQuery(combinedQuery.createQuery()); return fullTextQuery; }
@Override public Query visit(ConstantBooleanExpr constantBooleanExpr) { Query all = queryBuilder.all().createQuery(); return constantBooleanExpr.getValue() ? all : queryBuilder.bool().must(all).not().createQuery(); }
@Override public Query visit(ConstantBooleanExpr constantBooleanExpr) { Query all = queryBuilder.all().createQuery(); return constantBooleanExpr.getValue() ? all : queryBuilder.bool().must(all).not().createQuery(); }
@Test(expected = SearchException.class) public void testIllegalBooleanJunction() { final QueryBuilder monthQb = helper.queryBuilder( Month.class ); //forgetting to set any condition on the boolean, an exception shall be thrown: BooleanJunction<?> booleanJunction = monthQb.bool(); assertTrue( booleanJunction.isEmpty() ); booleanJunction.createQuery(); Assert.fail( "should not reach this point" ); }
@Test public void should_mustNot() { QueryBuilder queryBuilder = helper.queryBuilder( IndexedEntity.class ); HSQuery query = helper.hsQuery( queryBuilder.bool() .should( queryBuilder.keyword().onField( "field1" ).matching( FIELD1_VALUE1 ).createQuery() ) .should( queryBuilder.keyword().onField( "field1" ).matching( FIELD1_VALUE3 ).createQuery() ) .must( queryBuilder.keyword().onField( "field1" ).matching( FIELD1_VALUE1 ).createQuery() ).not() .createQuery() ); helper.assertThat( query ) .matchesUnorderedIds( DOCUMENT_3 ); }