Skip to content

Commit 3aa5bee

Browse files
authored
Merge pull request #501 from weaviate/rename-filters
v6: Rename `where` to `filter`
2 parents 12f5388 + 2e96499 commit 3aa5bee

File tree

14 files changed

+937
-937
lines changed

14 files changed

+937
-937
lines changed

README.md

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -430,8 +430,8 @@ songs.query.hybrid(
430430
Objects can be filtered by property or reference values. In the latter case you need to pass the "path" to the property in the referenced collection.
431431

432432
```java
433-
.where(Where.property("year").gte(1969))
434-
.where(Where.reference("hasAwards", "GrammyAwards", "category").eq("New Artist"))
433+
.filters(Filter.property("year").gte(1969))
434+
.filters(Filter.reference("hasAwards", "GrammyAwards", "category").eq("New Artist"))
435435
```
436436

437437
Supported **comparison operators**:
@@ -451,15 +451,15 @@ Supported **comparison operators**:
451451
Comparison operators can be grouped using **logical operators** with arbitrarily deep nesting.
452452

453453
```java
454-
.where(
455-
Where.or(
456-
Where.and(
457-
Where.property("year").gt(2000),
458-
Where.property("year").lt(2017)
454+
.filters(
455+
Filter.or(
456+
Filter.and(
457+
Filter.property("year").gt(2000),
458+
Filter.property("year").lt(2017)
459459
),
460-
Where.or(
461-
Where.property("artist").like("Boys"),
462-
Where.property("genres").containsAny("#rock", "#rocknroll", "#grunge")
460+
Filter.or(
461+
Filter.property("artist").like("Boys"),
462+
Filter.property("genres").containsAny("#rock", "#rocknroll", "#grunge")
463463
)
464464
)
465465
)
@@ -471,23 +471,23 @@ Supported **logical operators**:
471471
- Or: `.or`
472472
- Not: `.not`
473473

474-
Operators passed in subsequent calls to `.where` are concatenated with the `.and` operartor.
474+
Operators passed in subsequent calls to `.filters` are concatenated with the `.and` operartor.
475475
These 3 calls are equivalent:
476476

477477
```java
478-
.where(Where.and(cond1, cond2))
479-
.where(cond1, cond2)
480-
.where(cond1).where(cond2)
478+
.filters(Filter.and(cond1, cond2))
479+
.filters(cond1, cond2)
480+
.filters(cond1).filters(cond2)
481481
```
482482

483-
To negate an operator, wrap it in `Where.not(...)` or use the negation shorthand.
483+
To negate an operator, wrap it in `Filter.not(...)` or use the negation shorthand.
484484

485485
```java
486-
Where.not(Where.property("title").like("summer"));
487-
Where.property("title").like("summer").not();
486+
Filter.not(Filter.property("title").like("summer"));
487+
Filter.property("title").like("summer").not();
488488
```
489489

490-
Passing `null` and and empty `Where[]` to any of the logical operators as well as to the `.where()` method is safe -- the empty operators will simply be ignored.
490+
Passing `null` and empty `Filter[]` to any of the logical operators as well as to the `.filters()` method is safe -- the empty operators will simply be ignored.
491491

492492

493493
#### Grouping results

src/it/java/io/weaviate/integration/DataITest.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
import io.weaviate.client6.v1.api.collections.query.Metadata.MetadataField;
2929
import io.weaviate.client6.v1.api.collections.query.QueryMetadata;
3030
import io.weaviate.client6.v1.api.collections.query.QueryReference;
31-
import io.weaviate.client6.v1.api.collections.query.Where;
31+
import io.weaviate.client6.v1.api.collections.query.Filter;
3232
import io.weaviate.containers.Container;
3333

3434
public class DataITest extends ConcurrentTest {
@@ -303,7 +303,7 @@ public void testDeleteMany() throws IOException {
303303

304304
// Act (dry run)
305305
things.data.deleteMany(
306-
Where.property("last_used").gte(4),
306+
Filter.property("last_used").gte(4),
307307
opt -> opt.dryRun(true));
308308

309309
// Assert
@@ -312,7 +312,7 @@ public void testDeleteMany() throws IOException {
312312

313313
// Act (live run)
314314
var deleted = things.data.deleteMany(
315-
Where.property("last_used").gte(4),
315+
Filter.property("last_used").gte(4),
316316
opt -> opt.verbose(true));
317317

318318
// Assert

src/it/java/io/weaviate/integration/ORMITest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
import io.weaviate.client6.v1.api.collections.annotations.Collection;
2222
import io.weaviate.client6.v1.api.collections.annotations.Property;
2323
import io.weaviate.client6.v1.api.collections.data.InsertManyResponse.InsertObject;
24-
import io.weaviate.client6.v1.api.collections.query.Where;
24+
import io.weaviate.client6.v1.api.collections.query.Filter;
2525
import io.weaviate.containers.Container;
2626

2727
public class ORMITest extends ConcurrentTest {
@@ -318,7 +318,7 @@ public void test_insertManyAndQuery() throws Exception {
318318

319319
// Assert
320320
var uuids = inserted.responses().stream().map(InsertObject::uuid).toArray(String[]::new);
321-
var got = things.query.fetchObjects(q -> q.where(Where.uuid().containsAny(uuids)));
321+
var got = things.query.fetchObjects(q -> q.filters(Filter.uuid().containsAny(uuids)));
322322
Assertions.assertThat(got.objects())
323323
.hasSize(3)
324324
.usingRecursiveComparison(COMPARISON_CONFIG)

src/it/java/io/weaviate/integration/SearchITest.java

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@
3636
import io.weaviate.client6.v1.api.collections.query.QueryResponseGroup;
3737
import io.weaviate.client6.v1.api.collections.query.SortBy;
3838
import io.weaviate.client6.v1.api.collections.query.Target;
39-
import io.weaviate.client6.v1.api.collections.query.Where;
39+
import io.weaviate.client6.v1.api.collections.query.Filter;
4040
import io.weaviate.client6.v1.api.collections.vectorindex.Hnsw;
4141
import io.weaviate.client6.v1.api.collections.vectorindex.MultiVector;
4242
import io.weaviate.containers.Container;
@@ -251,12 +251,12 @@ public void testFetchObjectsWithFilters() throws IOException {
251251
var hugeHat = hats.data.insert(Map.of("colour", "orange", "size", 40));
252252

253253
var got = hats.query.fetchObjects(
254-
query -> query.where(
255-
Where.or(
256-
Where.property("colour").eq("orange"),
257-
Where.and(
258-
Where.property("size").gte(1),
259-
Where.property("size").lt(6)))));
254+
query -> query.filters(
255+
Filter.or(
256+
Filter.property("colour").eq("orange"),
257+
Filter.and(
258+
Filter.property("size").gte(1),
259+
Filter.property("size").lt(6)))));
260260

261261
Assertions.assertThat(got.objects())
262262
.extracting(hat -> hat.metadata().uuid())

src/main/java/io/weaviate/client6/v1/api/collections/data/DeleteManyRequest.java

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
import java.util.function.Function;
44

55
import io.weaviate.client6.v1.api.collections.CollectionHandleDefaults;
6-
import io.weaviate.client6.v1.api.collections.query.Where;
6+
import io.weaviate.client6.v1.api.collections.query.Filter;
77
import io.weaviate.client6.v1.internal.ObjectBuilder;
88
import io.weaviate.client6.v1.internal.grpc.ByteStringUtil;
99
import io.weaviate.client6.v1.internal.grpc.Rpc;
@@ -13,7 +13,7 @@
1313
import io.weaviate.client6.v1.internal.grpc.protocol.WeaviateProtoBatchDelete;
1414
import io.weaviate.client6.v1.internal.orm.CollectionDescriptor;
1515

16-
public record DeleteManyRequest(Where where, Boolean verbose, Boolean dryRun) {
16+
public record DeleteManyRequest(Filter filters, Boolean verbose, Boolean dryRun) {
1717

1818
public static Rpc<DeleteManyRequest, WeaviateProtoBatchDelete.BatchDeleteRequest, DeleteManyResponse, WeaviateProtoBatchDelete.BatchDeleteReply> rpc(
1919
CollectionDescriptor<?> collection,
@@ -37,7 +37,7 @@ public static Rpc<DeleteManyRequest, WeaviateProtoBatchDelete.BatchDeleteRequest
3737
}
3838

3939
var filters = WeaviateProtoBase.Filters.newBuilder();
40-
request.where.appendTo(filters);
40+
request.filters.appendTo(filters);
4141
message.setFilters(filters);
4242

4343
return message.build();
@@ -62,30 +62,30 @@ public static Rpc<DeleteManyRequest, WeaviateProtoBatchDelete.BatchDeleteRequest
6262
() -> WeaviateFutureStub::batchDelete);
6363
}
6464

65-
public static DeleteManyRequest of(Where where) {
66-
return of(where, ObjectBuilder.identity());
65+
public static DeleteManyRequest of(Filter filters) {
66+
return of(filters, ObjectBuilder.identity());
6767
}
6868

6969
public DeleteManyRequest(Builder builder) {
7070
this(
71-
builder.where,
71+
builder.filters,
7272
builder.verbose,
7373
builder.dryRun);
7474
}
7575

76-
public static DeleteManyRequest of(Where where, Function<Builder, ObjectBuilder<DeleteManyRequest>> fn) {
77-
return fn.apply(new Builder(where)).build();
76+
public static DeleteManyRequest of(Filter filters, Function<Builder, ObjectBuilder<DeleteManyRequest>> fn) {
77+
return fn.apply(new Builder(filters)).build();
7878
}
7979

8080
public static class Builder implements ObjectBuilder<DeleteManyRequest> {
8181
// Required request parameters;
82-
private final Where where;
82+
private final Filter filters;
8383

8484
private Boolean verbose;
8585
private Boolean dryRun;
8686

87-
public Builder(Where where) {
88-
this.where = where;
87+
public Builder(Filter filters) {
88+
this.filters = filters;
8989
}
9090

9191
public Builder verbose(boolean verbose) {

src/main/java/io/weaviate/client6/v1/api/collections/data/WeaviateDataClient.java

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@
99
import io.weaviate.client6.v1.api.collections.ObjectMetadata;
1010
import io.weaviate.client6.v1.api.collections.WeaviateObject;
1111
import io.weaviate.client6.v1.api.collections.query.WeaviateQueryClient;
12-
import io.weaviate.client6.v1.api.collections.query.Where;
13-
import io.weaviate.client6.v1.api.collections.query.WhereOperand;
12+
import io.weaviate.client6.v1.api.collections.query.Filter;
13+
import io.weaviate.client6.v1.api.collections.query.FilterOperand;
1414
import io.weaviate.client6.v1.internal.ObjectBuilder;
1515
import io.weaviate.client6.v1.internal.grpc.GrpcTransport;
1616
import io.weaviate.client6.v1.internal.orm.CollectionDescriptor;
@@ -104,18 +104,18 @@ public void delete(String uuid) throws IOException {
104104

105105
public DeleteManyResponse deleteMany(String... uuids) {
106106
var either = Arrays.stream(uuids)
107-
.map(uuid -> (WhereOperand) Where.uuid().eq(uuid))
107+
.map(uuid -> (FilterOperand) Filter.uuid().eq(uuid))
108108
.toList();
109-
return deleteMany(DeleteManyRequest.of(Where.or(either)));
109+
return deleteMany(DeleteManyRequest.of(Filter.or(either)));
110110
}
111111

112-
public DeleteManyResponse deleteMany(Where where) {
113-
return deleteMany(DeleteManyRequest.of(where));
112+
public DeleteManyResponse deleteMany(Filter filters) {
113+
return deleteMany(DeleteManyRequest.of(filters));
114114
}
115115

116-
public DeleteManyResponse deleteMany(Where where,
116+
public DeleteManyResponse deleteMany(Filter filters,
117117
Function<DeleteManyRequest.Builder, ObjectBuilder<DeleteManyRequest>> fn) {
118-
return deleteMany(DeleteManyRequest.of(where, fn));
118+
return deleteMany(DeleteManyRequest.of(filters, fn));
119119
}
120120

121121
public DeleteManyResponse deleteMany(DeleteManyRequest request) {

src/main/java/io/weaviate/client6/v1/api/collections/data/WeaviateDataClientAsync.java

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@
1111
import io.weaviate.client6.v1.api.collections.ObjectMetadata;
1212
import io.weaviate.client6.v1.api.collections.WeaviateObject;
1313
import io.weaviate.client6.v1.api.collections.query.WeaviateQueryClientAsync;
14-
import io.weaviate.client6.v1.api.collections.query.Where;
15-
import io.weaviate.client6.v1.api.collections.query.WhereOperand;
14+
import io.weaviate.client6.v1.api.collections.query.Filter;
15+
import io.weaviate.client6.v1.api.collections.query.FilterOperand;
1616
import io.weaviate.client6.v1.internal.ObjectBuilder;
1717
import io.weaviate.client6.v1.internal.grpc.GrpcTransport;
1818
import io.weaviate.client6.v1.internal.orm.CollectionDescriptor;
@@ -99,18 +99,18 @@ public CompletableFuture<Void> delete(String uuid) {
9999

100100
public CompletableFuture<DeleteManyResponse> deleteMany(String... uuids) {
101101
var either = Arrays.stream(uuids)
102-
.map(uuid -> (WhereOperand) Where.uuid().eq(uuid))
102+
.map(uuid -> (FilterOperand) Filter.uuid().eq(uuid))
103103
.toList();
104-
return deleteMany(DeleteManyRequest.of(Where.or(either)));
104+
return deleteMany(DeleteManyRequest.of(Filter.or(either)));
105105
}
106106

107-
public CompletableFuture<DeleteManyResponse> deleteMany(Where where) {
108-
return deleteMany(DeleteManyRequest.of(where));
107+
public CompletableFuture<DeleteManyResponse> deleteMany(Filter filters) {
108+
return deleteMany(DeleteManyRequest.of(filters));
109109
}
110110

111-
public CompletableFuture<DeleteManyResponse> deleteMany(Where where,
111+
public CompletableFuture<DeleteManyResponse> deleteMany(Filter filters,
112112
Function<DeleteManyRequest.Builder, ObjectBuilder<DeleteManyRequest>> fn) {
113-
return deleteMany(DeleteManyRequest.of(where, fn));
113+
return deleteMany(DeleteManyRequest.of(filters, fn));
114114
}
115115

116116
public CompletableFuture<DeleteManyResponse> deleteMany(DeleteManyRequest request) {

src/main/java/io/weaviate/client6/v1/api/collections/pagination/Paginator.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
import io.weaviate.client6.v1.api.collections.query.QueryMetadata;
1515
import io.weaviate.client6.v1.api.collections.query.QueryReference;
1616
import io.weaviate.client6.v1.api.collections.query.WeaviateQueryClient;
17-
import io.weaviate.client6.v1.api.collections.query.Where;
17+
import io.weaviate.client6.v1.api.collections.query.Filter;
1818
import io.weaviate.client6.v1.internal.ObjectBuilder;
1919

2020
public class Paginator<PropertiesT> implements Iterable<WeaviateObject<PropertiesT, Object, QueryMetadata>> {
@@ -90,8 +90,8 @@ public Builder<T> fromCursor(String uuid) {
9090
// Query options ----------------------------------------------------------
9191

9292
/** Combine several conditions using with an AND operator. */
93-
public final Builder<T> where(Where... where) {
94-
return applyQueryOption(q -> q.where(where));
93+
public final Builder<T> filters(Filter... filters) {
94+
return applyQueryOption(q -> q.filters(filters));
9595
}
9696

9797
public final Builder<T> returnProperties(String... properties) {

src/main/java/io/weaviate/client6/v1/api/collections/query/BaseQueryOptions.java

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ public record BaseQueryOptions(
1919
Integer autolimit,
2020
String after,
2121
ConsistencyLevel consistencyLevel,
22-
Where where,
22+
Filter filters,
2323
GenerativeSearch generativeSearch,
2424
List<String> returnProperties,
2525
List<QueryReference> returnReferences,
@@ -33,7 +33,7 @@ private <T extends Object> BaseQueryOptions(Builder<? extends Builder<?, T>, T>
3333
builder.autolimit,
3434
builder.after,
3535
builder.consistencyLevel,
36-
builder.where,
36+
builder.filter,
3737
builder.generativeSearch,
3838
builder.returnProperties,
3939
builder.returnReferences,
@@ -49,7 +49,7 @@ public static abstract class Builder<SelfT extends Builder<SelfT, T>, T extends
4949
private Integer autolimit;
5050
private String after;
5151
private ConsistencyLevel consistencyLevel;
52-
private Where where;
52+
private Filter filter;
5353
private GenerativeSearch generativeSearch;
5454
private List<String> returnProperties = new ArrayList<>();
5555
private List<QueryReference> returnReferences = new ArrayList<>();
@@ -124,16 +124,16 @@ protected SelfT generate(Function<GenerativeSearch.Builder, ObjectBuilder<Genera
124124
/**
125125
* Filter result set using traditional filtering operators: {@code eq},
126126
* {@code gte}, {@code like}, etc.
127-
* Subsequent calls to {@link #where} aggregate with an AND operator.
127+
* Subsequent calls to {@link #filter} aggregate with an AND operator.
128128
*/
129-
public final SelfT where(Where where) {
130-
this.where = this.where == null ? where : Where.and(this.where, where);
129+
public final SelfT filters(Filter filter) {
130+
this.filter = this.filter == null ? filter : Filter.and(this.filter, filter);
131131
return (SelfT) this;
132132
}
133133

134134
/** Combine several conditions using with an AND operator. */
135-
public final SelfT where(Where... wheres) {
136-
Arrays.stream(wheres).map(this::where);
135+
public final SelfT filters(Filter... filters) {
136+
Arrays.stream(filters).map(this::filters);
137137
return (SelfT) this;
138138
}
139139

@@ -218,9 +218,9 @@ final void appendTo(WeaviateProtoSearchGet.SearchRequest.Builder req) {
218218
consistencyLevel.appendTo(req);
219219
}
220220

221-
if (where != null) {
221+
if (filters != null) {
222222
var filter = WeaviateProtoBase.Filters.newBuilder();
223-
where.appendTo(filter);
223+
filters.appendTo(filter);
224224
req.setFilters(filter);
225225
}
226226

src/main/java/io/weaviate/client6/v1/api/collections/query/FetchObjectById.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -108,9 +108,9 @@ public FetchObjectById build() {
108108

109109
@Override
110110
public void appendTo(WeaviateProtoSearchGet.SearchRequest.Builder req) {
111-
var where = Where.uuid().eq(uuid);
111+
var filters = Filter.uuid().eq(uuid);
112112
var filter = WeaviateProtoBase.Filters.newBuilder();
113-
where.appendTo(filter);
113+
filters.appendTo(filter);
114114
req.setFilters(filter);
115115

116116
var metadata = WeaviateProtoSearchGet.MetadataRequest.newBuilder();

0 commit comments

Comments
 (0)