|
30 | 30 | import io.weaviate.client6.v1.api.collections.generate.GenerativeObject; |
31 | 31 | import io.weaviate.client6.v1.api.collections.generate.TaskOutput; |
32 | 32 | import io.weaviate.client6.v1.api.collections.generative.DummyGenerative; |
| 33 | +import io.weaviate.client6.v1.api.collections.query.Filter; |
33 | 34 | import io.weaviate.client6.v1.api.collections.query.GroupBy; |
34 | 35 | import io.weaviate.client6.v1.api.collections.query.Metadata; |
35 | 36 | import io.weaviate.client6.v1.api.collections.query.QueryMetadata; |
36 | 37 | import io.weaviate.client6.v1.api.collections.query.QueryResponseGroup; |
37 | 38 | import io.weaviate.client6.v1.api.collections.query.SortBy; |
38 | 39 | import io.weaviate.client6.v1.api.collections.query.Target; |
39 | | -import io.weaviate.client6.v1.api.collections.query.Filter; |
40 | 40 | import io.weaviate.client6.v1.api.collections.vectorindex.Hnsw; |
41 | 41 | import io.weaviate.client6.v1.api.collections.vectorindex.MultiVector; |
42 | 42 | import io.weaviate.containers.Container; |
@@ -608,9 +608,9 @@ public void testGenerative_bm25() throws IOException { |
608 | 608 | .hasSize(2) |
609 | 609 | .allSatisfy(obj -> { |
610 | 610 | Assertions.assertThat(obj).as("uuid shorthand") |
611 | | - .returns(obj.uuid(), GenerativeObject::uuid); |
| 611 | + .returns(obj.uuid(), GenerativeObject::uuid); |
612 | 612 | Assertions.assertThat(obj).as("vectors shorthand") |
613 | | - .returns(obj.vectors(), GenerativeObject::vectors); |
| 613 | + .returns(obj.vectors(), GenerativeObject::vectors); |
614 | 614 | }) |
615 | 615 | .extracting(GenerativeObject::generative) |
616 | 616 | .allSatisfy(generated -> { |
@@ -673,4 +673,31 @@ public void testGenerative_bm25_groupBy() throws IOException { |
673 | 673 | .extracting(TaskOutput::text, InstanceOfAssertFactories.STRING) |
674 | 674 | .isNotBlank(); |
675 | 675 | } |
| 676 | + |
| 677 | + @Test |
| 678 | + public void test_filterIsNull() throws IOException { |
| 679 | + // Arrange |
| 680 | + var nsNulls = ns("Nulls"); |
| 681 | + |
| 682 | + var nulls = client.collections.create(nsNulls, |
| 683 | + c -> c |
| 684 | + .invertedIndex(idx -> idx.indexNulls(true)) |
| 685 | + .properties(Property.text("never"))); |
| 686 | + |
| 687 | + var inserted = nulls.data.insertMany(Map.of(), Map.of("never", "notNull")); |
| 688 | + Assertions.assertThat(inserted.errors()).isEmpty(); |
| 689 | + |
| 690 | + // Act |
| 691 | + var isNull = nulls.query.fetchObjects(q -> q.filters(Filter.property("never").isNull())); |
| 692 | + var isNotNull = nulls.query.fetchObjects(q -> q.filters(Filter.property("never").isNotNull())); |
| 693 | + |
| 694 | + // Assert |
| 695 | + var isNull_1 = Assertions.assertThat(isNull.objects()) |
| 696 | + .as("objects WHERE never IS NULL") |
| 697 | + .hasSize(1).first().actual(); |
| 698 | + var isNotNull_1 = Assertions.assertThat(isNotNull.objects()) |
| 699 | + .as("objects WHERE never IS NOT NULL") |
| 700 | + .hasSize(1).first().actual(); |
| 701 | + Assertions.assertThat(isNull_1).isNotEqualTo(isNotNull_1); |
| 702 | + } |
676 | 703 | } |
0 commit comments