Skip to content

Commit 4edd475

Browse files
committed
feat(discovery): Add similarity options in query methods
1 parent 891bed7 commit 4edd475

File tree

6 files changed

+499
-0
lines changed

6 files changed

+499
-0
lines changed

discovery/src/main/java/com/ibm/watson/developer_cloud/discovery/v1/Discovery.java

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -749,6 +749,15 @@ public ServiceCall<QueryResponse> federatedQuery(FederatedQueryOptions federated
749749
if (federatedQueryOptions.deduplicateField() != null) {
750750
builder.query("deduplicate.field", federatedQueryOptions.deduplicateField());
751751
}
752+
if (federatedQueryOptions.similar() != null) {
753+
builder.query("similar", String.valueOf(federatedQueryOptions.similar()));
754+
}
755+
if (federatedQueryOptions.similarDocumentIds() != null) {
756+
builder.query("similar.document_ids", RequestUtils.join(federatedQueryOptions.similarDocumentIds(), ","));
757+
}
758+
if (federatedQueryOptions.similarFields() != null) {
759+
builder.query("similar.fields", RequestUtils.join(federatedQueryOptions.similarFields(), ","));
760+
}
752761
return createServiceCall(builder.build(), ResponseConverterUtils.getObject(QueryResponse.class));
753762
}
754763

@@ -800,6 +809,15 @@ public ServiceCall<QueryNoticesResponse> federatedQueryNotices(
800809
if (federatedQueryNoticesOptions.deduplicateField() != null) {
801810
builder.query("deduplicate.field", federatedQueryNoticesOptions.deduplicateField());
802811
}
812+
if (federatedQueryNoticesOptions.similar() != null) {
813+
builder.query("similar", String.valueOf(federatedQueryNoticesOptions.similar()));
814+
}
815+
if (federatedQueryNoticesOptions.similarDocumentIds() != null) {
816+
builder.query("similar.document_ids", RequestUtils.join(federatedQueryNoticesOptions.similarDocumentIds(), ","));
817+
}
818+
if (federatedQueryNoticesOptions.similarFields() != null) {
819+
builder.query("similar.fields", RequestUtils.join(federatedQueryNoticesOptions.similarFields(), ","));
820+
}
803821
return createServiceCall(builder.build(), ResponseConverterUtils.getObject(QueryNoticesResponse.class));
804822
}
805823

@@ -862,6 +880,15 @@ public ServiceCall<QueryResponse> query(QueryOptions queryOptions) {
862880
if (queryOptions.deduplicateField() != null) {
863881
builder.query("deduplicate.field", queryOptions.deduplicateField());
864882
}
883+
if (queryOptions.similar() != null) {
884+
builder.query("similar", String.valueOf(queryOptions.similar()));
885+
}
886+
if (queryOptions.similarDocumentIds() != null) {
887+
builder.query("similar.document_ids", RequestUtils.join(queryOptions.similarDocumentIds(), ","));
888+
}
889+
if (queryOptions.similarFields() != null) {
890+
builder.query("similar.fields", RequestUtils.join(queryOptions.similarFields(), ","));
891+
}
865892
return createServiceCall(builder.build(), ResponseConverterUtils.getObject(QueryResponse.class));
866893
}
867894

@@ -954,6 +981,15 @@ public ServiceCall<QueryNoticesResponse> queryNotices(QueryNoticesOptions queryN
954981
if (queryNoticesOptions.deduplicateField() != null) {
955982
builder.query("deduplicate.field", queryNoticesOptions.deduplicateField());
956983
}
984+
if (queryNoticesOptions.similar() != null) {
985+
builder.query("similar", String.valueOf(queryNoticesOptions.similar()));
986+
}
987+
if (queryNoticesOptions.similarDocumentIds() != null) {
988+
builder.query("similar.document_ids", RequestUtils.join(queryNoticesOptions.similarDocumentIds(), ","));
989+
}
990+
if (queryNoticesOptions.similarFields() != null) {
991+
builder.query("similar.fields", RequestUtils.join(queryNoticesOptions.similarFields(), ","));
992+
}
957993
return createServiceCall(builder.build(), ResponseConverterUtils.getObject(QueryNoticesResponse.class));
958994
}
959995

discovery/src/main/java/com/ibm/watson/developer_cloud/discovery/v1/model/FederatedQueryNoticesOptions.java

Lines changed: 115 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,9 @@ public class FederatedQueryNoticesOptions extends GenericModel {
3535
private List<String> sort;
3636
private Boolean highlight;
3737
private String deduplicateField;
38+
private Boolean similar;
39+
private List<String> similarDocumentIds;
40+
private List<String> similarFields;
3841

3942
/**
4043
* Builder.
@@ -52,6 +55,9 @@ public static class Builder {
5255
private List<String> sort;
5356
private Boolean highlight;
5457
private String deduplicateField;
58+
private Boolean similar;
59+
private List<String> similarDocumentIds;
60+
private List<String> similarFields;
5561

5662
private Builder(FederatedQueryNoticesOptions federatedQueryNoticesOptions) {
5763
environmentId = federatedQueryNoticesOptions.environmentId;
@@ -66,6 +72,9 @@ private Builder(FederatedQueryNoticesOptions federatedQueryNoticesOptions) {
6672
sort = federatedQueryNoticesOptions.sort;
6773
highlight = federatedQueryNoticesOptions.highlight;
6874
deduplicateField = federatedQueryNoticesOptions.deduplicateField;
75+
similar = federatedQueryNoticesOptions.similar;
76+
similarDocumentIds = federatedQueryNoticesOptions.similarDocumentIds;
77+
similarFields = federatedQueryNoticesOptions.similarFields;
6978
}
7079

7180
/**
@@ -139,6 +148,36 @@ public Builder addSort(String sort) {
139148
return this;
140149
}
141150

151+
/**
152+
* Adds an similarDocumentIds to similarDocumentIds.
153+
*
154+
* @param similarDocumentIds the new similarDocumentIds
155+
* @return the FederatedQueryNoticesOptions builder
156+
*/
157+
public Builder addSimilarDocumentIds(String similarDocumentIds) {
158+
Validator.notNull(similarDocumentIds, "similarDocumentIds cannot be null");
159+
if (this.similarDocumentIds == null) {
160+
this.similarDocumentIds = new ArrayList<String>();
161+
}
162+
this.similarDocumentIds.add(similarDocumentIds);
163+
return this;
164+
}
165+
166+
/**
167+
* Adds an similarFields to similarFields.
168+
*
169+
* @param similarFields the new similarFields
170+
* @return the FederatedQueryNoticesOptions builder
171+
*/
172+
public Builder addSimilarFields(String similarFields) {
173+
Validator.notNull(similarFields, "similarFields cannot be null");
174+
if (this.similarFields == null) {
175+
this.similarFields = new ArrayList<String>();
176+
}
177+
this.similarFields.add(similarFields);
178+
return this;
179+
}
180+
142181
/**
143182
* Set the environmentId.
144183
*
@@ -273,6 +312,41 @@ public Builder deduplicateField(String deduplicateField) {
273312
this.deduplicateField = deduplicateField;
274313
return this;
275314
}
315+
316+
/**
317+
* Set the similar.
318+
*
319+
* @param similar the similar
320+
* @return the FederatedQueryNoticesOptions builder
321+
*/
322+
public Builder similar(Boolean similar) {
323+
this.similar = similar;
324+
return this;
325+
}
326+
327+
/**
328+
* Set the similarDocumentIds.
329+
* Existing similarDocumentIds will be replaced.
330+
*
331+
* @param similarDocumentIds the similarDocumentIds
332+
* @return the FederatedQueryNoticesOptions builder
333+
*/
334+
public Builder similarDocumentIds(List<String> similarDocumentIds) {
335+
this.similarDocumentIds = similarDocumentIds;
336+
return this;
337+
}
338+
339+
/**
340+
* Set the similarFields.
341+
* Existing similarFields will be replaced.
342+
*
343+
* @param similarFields the similarFields
344+
* @return the FederatedQueryNoticesOptions builder
345+
*/
346+
public Builder similarFields(List<String> similarFields) {
347+
this.similarFields = similarFields;
348+
return this;
349+
}
276350
}
277351

278352
private FederatedQueryNoticesOptions(Builder builder) {
@@ -290,6 +364,9 @@ private FederatedQueryNoticesOptions(Builder builder) {
290364
sort = builder.sort;
291365
highlight = builder.highlight;
292366
deduplicateField = builder.deduplicateField;
367+
similar = builder.similar;
368+
similarDocumentIds = builder.similarDocumentIds;
369+
similarFields = builder.similarFields;
293370
}
294371

295372
/**
@@ -445,4 +522,42 @@ public Boolean highlight() {
445522
public String deduplicateField() {
446523
return deduplicateField;
447524
}
525+
526+
/**
527+
* Gets the similar.
528+
*
529+
* When `true`, results are returned based on their similarity to the document IDs specified in the
530+
* `similar.document_ids` parameter. The default is `false`.
531+
*
532+
* @return the similar
533+
*/
534+
public Boolean similar() {
535+
return similar;
536+
}
537+
538+
/**
539+
* Gets the similarDocumentIds.
540+
*
541+
* A comma-separated list of document IDs that will be used to find similar documents. **Note:** If the
542+
* `natural_language_query` parameter is also specified, it will be used to expand the scope of the document
543+
* similarity search to include the natural language query. Other query parameters, such as `filter` and `query` are
544+
* subsequently applied and reduce the query scope.
545+
*
546+
* @return the similarDocumentIds
547+
*/
548+
public List<String> similarDocumentIds() {
549+
return similarDocumentIds;
550+
}
551+
552+
/**
553+
* Gets the similarFields.
554+
*
555+
* A comma-separated list of field names that will be used as a basis for comparison to identify similar documents. If
556+
* not specified, the entire document is used for comparison.
557+
*
558+
* @return the similarFields
559+
*/
560+
public List<String> similarFields() {
561+
return similarFields;
562+
}
448563
}

discovery/src/main/java/com/ibm/watson/developer_cloud/discovery/v1/model/FederatedQueryOptions.java

Lines changed: 115 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,9 @@ public class FederatedQueryOptions extends GenericModel {
3636
private Boolean highlight;
3737
private Boolean deduplicate;
3838
private String deduplicateField;
39+
private Boolean similar;
40+
private List<String> similarDocumentIds;
41+
private List<String> similarFields;
3942

4043
/**
4144
* Builder.
@@ -54,6 +57,9 @@ public static class Builder {
5457
private Boolean highlight;
5558
private Boolean deduplicate;
5659
private String deduplicateField;
60+
private Boolean similar;
61+
private List<String> similarDocumentIds;
62+
private List<String> similarFields;
5763

5864
private Builder(FederatedQueryOptions federatedQueryOptions) {
5965
environmentId = federatedQueryOptions.environmentId;
@@ -69,6 +75,9 @@ private Builder(FederatedQueryOptions federatedQueryOptions) {
6975
highlight = federatedQueryOptions.highlight;
7076
deduplicate = federatedQueryOptions.deduplicate;
7177
deduplicateField = federatedQueryOptions.deduplicateField;
78+
similar = federatedQueryOptions.similar;
79+
similarDocumentIds = federatedQueryOptions.similarDocumentIds;
80+
similarFields = federatedQueryOptions.similarFields;
7281
}
7382

7483
/**
@@ -142,6 +151,36 @@ public Builder addSort(String sort) {
142151
return this;
143152
}
144153

154+
/**
155+
* Adds an similarDocumentIds to similarDocumentIds.
156+
*
157+
* @param similarDocumentIds the new similarDocumentIds
158+
* @return the FederatedQueryOptions builder
159+
*/
160+
public Builder addSimilarDocumentIds(String similarDocumentIds) {
161+
Validator.notNull(similarDocumentIds, "similarDocumentIds cannot be null");
162+
if (this.similarDocumentIds == null) {
163+
this.similarDocumentIds = new ArrayList<String>();
164+
}
165+
this.similarDocumentIds.add(similarDocumentIds);
166+
return this;
167+
}
168+
169+
/**
170+
* Adds an similarFields to similarFields.
171+
*
172+
* @param similarFields the new similarFields
173+
* @return the FederatedQueryOptions builder
174+
*/
175+
public Builder addSimilarFields(String similarFields) {
176+
Validator.notNull(similarFields, "similarFields cannot be null");
177+
if (this.similarFields == null) {
178+
this.similarFields = new ArrayList<String>();
179+
}
180+
this.similarFields.add(similarFields);
181+
return this;
182+
}
183+
145184
/**
146185
* Set the environmentId.
147186
*
@@ -287,6 +326,41 @@ public Builder deduplicateField(String deduplicateField) {
287326
this.deduplicateField = deduplicateField;
288327
return this;
289328
}
329+
330+
/**
331+
* Set the similar.
332+
*
333+
* @param similar the similar
334+
* @return the FederatedQueryOptions builder
335+
*/
336+
public Builder similar(Boolean similar) {
337+
this.similar = similar;
338+
return this;
339+
}
340+
341+
/**
342+
* Set the similarDocumentIds.
343+
* Existing similarDocumentIds will be replaced.
344+
*
345+
* @param similarDocumentIds the similarDocumentIds
346+
* @return the FederatedQueryOptions builder
347+
*/
348+
public Builder similarDocumentIds(List<String> similarDocumentIds) {
349+
this.similarDocumentIds = similarDocumentIds;
350+
return this;
351+
}
352+
353+
/**
354+
* Set the similarFields.
355+
* Existing similarFields will be replaced.
356+
*
357+
* @param similarFields the similarFields
358+
* @return the FederatedQueryOptions builder
359+
*/
360+
public Builder similarFields(List<String> similarFields) {
361+
this.similarFields = similarFields;
362+
return this;
363+
}
290364
}
291365

292366
private FederatedQueryOptions(Builder builder) {
@@ -305,6 +379,9 @@ private FederatedQueryOptions(Builder builder) {
305379
highlight = builder.highlight;
306380
deduplicate = builder.deduplicate;
307381
deduplicateField = builder.deduplicateField;
382+
similar = builder.similar;
383+
similarDocumentIds = builder.similarDocumentIds;
384+
similarFields = builder.similarFields;
308385
}
309386

310387
/**
@@ -473,4 +550,42 @@ public Boolean deduplicate() {
473550
public String deduplicateField() {
474551
return deduplicateField;
475552
}
553+
554+
/**
555+
* Gets the similar.
556+
*
557+
* When `true`, results are returned based on their similarity to the document IDs specified in the
558+
* `similar.document_ids` parameter. The default is `false`.
559+
*
560+
* @return the similar
561+
*/
562+
public Boolean similar() {
563+
return similar;
564+
}
565+
566+
/**
567+
* Gets the similarDocumentIds.
568+
*
569+
* A comma-separated list of document IDs that will be used to find similar documents. **Note:** If the
570+
* `natural_language_query` parameter is also specified, it will be used to expand the scope of the document
571+
* similarity search to include the natural language query. Other query parameters, such as `filter` and `query` are
572+
* subsequently applied and reduce the query scope.
573+
*
574+
* @return the similarDocumentIds
575+
*/
576+
public List<String> similarDocumentIds() {
577+
return similarDocumentIds;
578+
}
579+
580+
/**
581+
* Gets the similarFields.
582+
*
583+
* A comma-separated list of field names that will be used as a basis for comparison to identify similar documents. If
584+
* not specified, the entire document is used for comparison.
585+
*
586+
* @return the similarFields
587+
*/
588+
public List<String> similarFields() {
589+
return similarFields;
590+
}
476591
}

0 commit comments

Comments
 (0)