org.hibernate.search.query.dsl.impl.ConnectedTermMatchingContext Maven / Gradle / Ivy
/*
* Hibernate Search, full-text search for your domain model
*
* License: GNU Lesser General Public License (LGPL), version 2.1 or later
* See the lgpl.txt file in the root directory or .
*/
package org.hibernate.search.query.dsl.impl;
import org.hibernate.search.bridge.FieldBridge;
import org.hibernate.search.query.dsl.TermMatchingContext;
import org.hibernate.search.query.dsl.TermTermination;
/**
* @author Emmanuel Bernard
*/
public class ConnectedTermMatchingContext implements TermMatchingContext, FieldBridgeCustomization {
private final QueryBuildingContext queryContext;
private final QueryCustomizer queryCustomizer;
private final TermQueryContext termContext;
private final FieldsContext fieldsContext;
public ConnectedTermMatchingContext(TermQueryContext termContext,
String field, QueryCustomizer queryCustomizer, QueryBuildingContext queryContext) {
this.queryContext = queryContext;
this.queryCustomizer = queryCustomizer;
this.termContext = termContext;
this.fieldsContext = new FieldsContext( new String[] { field }, queryContext );
}
public ConnectedTermMatchingContext(TermQueryContext termContext,
String[] fields, QueryCustomizer queryCustomizer, QueryBuildingContext queryContext) {
this.queryContext = queryContext;
this.queryCustomizer = queryCustomizer;
this.termContext = termContext;
this.fieldsContext = new FieldsContext( fields, queryContext );
}
@Override
public TermTermination matching(Object value) {
return new ConnectedMultiFieldsTermQueryBuilder( termContext, value, fieldsContext, queryCustomizer, queryContext );
}
@Override
public TermMatchingContext andField(String field) {
fieldsContext.add( field );
return this;
}
@Override
public TermMatchingContext boostedTo(float boost) {
fieldsContext.boostedTo( boost );
return this;
}
@Override
public TermMatchingContext ignoreAnalyzer() {
fieldsContext.ignoreAnalyzer();
return this;
}
@Override
public TermMatchingContext ignoreFieldBridge() {
fieldsContext.ignoreFieldBridge();
return this;
}
@Override
public TermMatchingContext withFieldBridge(FieldBridge fieldBridge) {
fieldsContext.withFieldBridge( fieldBridge );
return this;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy