Skip to content

Commit 6a4bc39

Browse files
committed
HSEARCH-4950 Update nested context checks
1 parent d954c31 commit 6a4bc39

File tree

2 files changed

+6
-1
lines changed

2 files changed

+6
-1
lines changed

backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/search/predicate/impl/AbstractElasticsearchNestablePredicate.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,6 @@ public void checkNestableWithin(String expectedParentNestedPath) {
3535

3636
@Override
3737
public JsonObject toJsonQuery(PredicateRequestContext context) {
38-
checkNestableWithin( context.getNestedPath() );
3938

4039
List<String> nestedPathHierarchy = getNestedPathHierarchy();
4140
String expectedNestedPath = nestedPathHierarchy.isEmpty()
@@ -44,6 +43,7 @@ public JsonObject toJsonQuery(PredicateRequestContext context) {
4443

4544
if ( Objects.equals( context.getNestedPath(), expectedNestedPath ) ) {
4645
// Implicit nesting is not necessary
46+
checkNestableWithin( context.getNestedPath() );
4747
return super.toJsonQuery( context );
4848
}
4949

@@ -52,6 +52,7 @@ public JsonObject toJsonQuery(PredicateRequestContext context) {
5252
// so that the predicate is actually executed in this context.
5353
PredicateRequestContext contextAfterImplicitNesting =
5454
context.withNestedPath( expectedNestedPath );
55+
checkNestableWithin( expectedNestedPath );
5556

5657
JsonObject result = super.toJsonQuery( contextAfterImplicitNesting );
5758

integrationtest/backend/tck/src/main/java/org/hibernate/search/integrationtest/backend/tck/search/predicate/KnnPredicateSpecificsIT.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -690,6 +690,10 @@ void insideOtherPredicate() {
690690
@Test
691691
@SuppressWarnings("unchecked")
692692
void nestedVector() {
693+
assumeTrue(
694+
TckConfiguration.get().getBackendFeatures().supportsVectorSearchInsideOtherPredicates(),
695+
"This test won't work on some backends that can only accept a knn predicate at top level."
696+
);
693697
assertThat(
694698
indexNested.createScope().query()
695699
.select( f -> f.composite()

0 commit comments

Comments
 (0)