
org.hibernate.search.query.dsl.impl.ConnectedMultiFieldsPhraseQueryBuilder Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of hibernate-search-v5migrationhelper-engine Show documentation
Show all versions of hibernate-search-v5migrationhelper-engine Show documentation
Helper to migrate from Hibernate Search 5 to 6, providing partial support for Hibernate Search 5 Engine APIs on top of Hibernate Search 6
The newest version!
/*
* SPDX-License-Identifier: Apache-2.0
* Copyright Red Hat Inc. and Hibernate Authors
*/
package org.hibernate.search.query.dsl.impl;
import org.hibernate.search.engine.search.predicate.dsl.PhrasePredicateOptionsStep;
import org.hibernate.search.engine.search.predicate.dsl.SearchPredicateFactory;
import org.hibernate.search.query.dsl.PhraseTermination;
/**
* @author Emmanuel Bernard
*/
public class ConnectedMultiFieldsPhraseQueryBuilder
extends AbstractConnectedMultiFieldsQueryBuilder>
implements PhraseTermination {
private final PhraseQueryContext phraseContext;
public ConnectedMultiFieldsPhraseQueryBuilder(QueryBuildingContext queryContext, QueryCustomizer queryCustomizer,
FieldsContext fieldsContext, PhraseQueryContext phraseContext) {
super( queryContext, queryCustomizer, fieldsContext );
this.phraseContext = phraseContext;
}
@Override
protected PhrasePredicateOptionsStep> createPredicate(SearchPredicateFactory factory, FieldContext fieldContext) {
PhrasePredicateOptionsStep> optionsStep =
fieldContext.applyBoost( factory.phrase().field( fieldContext.getField() ) )
.matching( phraseContext.getSentence() );
optionsStep = optionsStep.slop( phraseContext.getSlop() );
if ( fieldContext.skipAnalysis() ) {
optionsStep = optionsStep.skipAnalysis();
}
else {
String overriddenAnalyzer = queryContext.getOverriddenAnalyzer( fieldContext.getField() );
if ( overriddenAnalyzer != null ) {
optionsStep = optionsStep.analyzer( overriddenAnalyzer );
}
}
return optionsStep;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy