diff --git a/elasticsearch/src/main/java/org/hibernate/search/elasticsearch/impl/ElasticsearchHSQueryImpl.java b/elasticsearch/src/main/java/org/hibernate/search/elasticsearch/impl/ElasticsearchHSQueryImpl.java index 10f13db0921..e676435e8fd 100644 --- a/elasticsearch/src/main/java/org/hibernate/search/elasticsearch/impl/ElasticsearchHSQueryImpl.java +++ b/elasticsearch/src/main/java/org/hibernate/search/elasticsearch/impl/ElasticsearchHSQueryImpl.java @@ -29,7 +29,6 @@ import org.apache.lucene.document.LongField; import org.apache.lucene.document.StringField; import org.apache.lucene.search.Explanation; -import org.apache.lucene.search.Filter; import org.apache.lucene.search.Query; import org.apache.lucene.search.SortField; import org.apache.lucene.search.TopDocs; @@ -1141,8 +1140,9 @@ protected JsonObject createFullTextFilter(FilterDef def, Object filterOrFactory) } private JsonObject toJsonFilter(Object candidateFilter) { - if ( candidateFilter instanceof Filter ) { - return ToElasticsearch.fromLuceneFilter( (Filter) candidateFilter ); + if ( candidateFilter instanceof Query ) { + // This also handles the case where the query extends Filter + return ToElasticsearch.fromLuceneQuery( (Query) candidateFilter ); } else if ( candidateFilter instanceof ElasticsearchFilter ) { return JSON_PARSER.parse( ( (ElasticsearchFilter) candidateFilter ).getJsonFilter() ).getAsJsonObject(); diff --git a/elasticsearch/src/main/java/org/hibernate/search/elasticsearch/impl/ToElasticsearch.java b/elasticsearch/src/main/java/org/hibernate/search/elasticsearch/impl/ToElasticsearch.java index b15984bdb1a..28b66a9e6ee 100644 --- a/elasticsearch/src/main/java/org/hibernate/search/elasticsearch/impl/ToElasticsearch.java +++ b/elasticsearch/src/main/java/org/hibernate/search/elasticsearch/impl/ToElasticsearch.java @@ -16,7 +16,6 @@ import org.apache.lucene.search.BooleanClause; import org.apache.lucene.search.BooleanQuery; import org.apache.lucene.search.BoostQuery; -import org.apache.lucene.search.CachingWrapperQuery; import org.apache.lucene.search.ConstantScoreQuery; import org.apache.lucene.search.Filter; import org.apache.lucene.search.FilteredQuery; @@ -39,7 +38,7 @@ import org.hibernate.search.elasticsearch.util.impl.FieldHelper; import org.hibernate.search.engine.spi.DocumentBuilderIndexedEntity; import org.hibernate.search.exception.AssertionFailure; -import org.hibernate.search.filter.impl.CachingWrapperFilter; +import org.hibernate.search.filter.impl.CachingWrapperQuery; import org.hibernate.search.query.dsl.impl.DiscreteFacetRequest; import org.hibernate.search.query.dsl.impl.FacetRange; import org.hibernate.search.query.dsl.impl.RangeFacetRequest; @@ -247,6 +246,10 @@ else if ( query instanceof CachingWrapperQuery ) { JsonObject result = fromLuceneQuery( ( (CachingWrapperQuery) query ).getQuery() ); return wrapBoostIfNecessary( result, query.getBoost() ); } + else if ( query instanceof org.apache.lucene.search.CachingWrapperQuery ) { + JsonObject result = fromLuceneQuery( ( (org.apache.lucene.search.CachingWrapperQuery) query ).getQuery() ); + return wrapBoostIfNecessary( result, query.getBoost() ); + } throw LOG.cannotTransformLuceneQueryIntoEsQuery( query ); } @@ -717,13 +720,10 @@ else if ( luceneFilter instanceof DistanceFilter ) { else if ( luceneFilter instanceof SpatialHashFilter ) { return convertSpatialHashFilter( (SpatialHashFilter) luceneFilter ); } - else if ( luceneFilter instanceof CachingWrapperFilter ) { - return fromLuceneFilter( ( (CachingWrapperFilter) luceneFilter ).getCachedFilter() ); - } else if ( luceneFilter instanceof org.apache.lucene.search.CachingWrapperFilter ) { return fromLuceneFilter( ( (org.apache.lucene.search.CachingWrapperFilter) luceneFilter ).getFilter() ); } - throw LOG.cannotTransformLuceneFilterIntoEsQuery( luceneFilter ); + throw LOG.cannotTransformLuceneQueryIntoEsQuery( luceneFilter ); } /** diff --git a/elasticsearch/src/main/java/org/hibernate/search/elasticsearch/logging/impl/Log.java b/elasticsearch/src/main/java/org/hibernate/search/elasticsearch/logging/impl/Log.java index 63ab77c274b..25fbba907f5 100644 --- a/elasticsearch/src/main/java/org/hibernate/search/elasticsearch/logging/impl/Log.java +++ b/elasticsearch/src/main/java/org/hibernate/search/elasticsearch/logging/impl/Log.java @@ -10,7 +10,6 @@ import java.util.List; import java.util.Map; -import org.apache.lucene.search.Filter; import org.apache.lucene.search.Query; import org.apache.lucene.search.SortField; import org.hibernate.search.analyzer.spi.AnalyzerReference; @@ -47,10 +46,6 @@ public interface Log extends org.hibernate.search.util.logging.impl.Log { value = "Lucene query '%1$s' cannot be transformed into equivalent Elasticsearch query" ) SearchException cannotTransformLuceneQueryIntoEsQuery(Query query); - @Message(id = ES_BACKEND_MESSAGES_START_ID + 3, - value = "Lucene filter '%1$s' cannot be transformed into equivalent Elasticsearch query" ) - SearchException cannotTransformLuceneFilterIntoEsQuery(Filter filter); - @Message(id = ES_BACKEND_MESSAGES_START_ID + 4, value = "The sort order RANGE_DEFINITION_ORDER cant not be sent used with Elasticsearch" ) SearchException cannotSendRangeDefinitionOrderToElasticsearchBackend();