Skip to content

Commit 615cda6

Browse files
committed
Add similarity settings when using CreateIndexRequest
1 parent b8e0dad commit 615cda6

File tree

4 files changed

+349
-0
lines changed

4 files changed

+349
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,123 @@
1+
package org.opensearch.client.opensearch.indices;
2+
3+
4+
import jakarta.json.stream.JsonGenerator;
5+
import java.util.function.Function;
6+
import org.opensearch.client.json.JsonEnum;
7+
import org.opensearch.client.json.JsonpDeserializable;
8+
import org.opensearch.client.json.JsonpDeserializer;
9+
import org.opensearch.client.json.JsonpMapper;
10+
import org.opensearch.client.json.JsonpSerializable;
11+
import org.opensearch.client.json.ObjectBuilderDeserializer;
12+
import org.opensearch.client.json.ObjectDeserializer;
13+
import org.opensearch.client.util.ApiTypeHelper;
14+
import org.opensearch.client.util.ObjectBuilder;
15+
import org.opensearch.client.util.ObjectBuilderBase;
16+
import org.opensearch.client.util.TaggedUnion;
17+
18+
19+
20+
@JsonpDeserializable
21+
public class IndexSettingsSimilarity implements TaggedUnion<IndexSettingsSimilarity.Kind, IndexSettingsSimilarityVariant>, JsonpSerializable {
22+
23+
24+
public enum Kind implements JsonEnum {
25+
Bm25("BM25"),
26+
27+
Boolean("boolean"),
28+
29+
;
30+
31+
private final String jsonValue;
32+
33+
Kind(String jsonValue) {
34+
this.jsonValue = jsonValue;
35+
}
36+
37+
public String jsonValue() {
38+
return this.jsonValue;
39+
}
40+
41+
}
42+
43+
private final Kind _kind;
44+
private final IndexSettingsSimilarityVariant _value;
45+
46+
public final Kind _kind() {
47+
return _kind;
48+
}
49+
50+
public final IndexSettingsSimilarityVariant _get() {
51+
return _value;
52+
}
53+
54+
public IndexSettingsSimilarity(IndexSettingsSimilarityVariant value) {
55+
56+
this._kind = ApiTypeHelper.requireNonNull(value._settingsSimilarityKind(), this, "<variant kind>");
57+
this._value = ApiTypeHelper.requireNonNull(value, this, "<variant value>");
58+
59+
}
60+
61+
private IndexSettingsSimilarity(Builder builder) {
62+
63+
this._kind = ApiTypeHelper.requireNonNull(builder._kind, builder, "<variant kind>");
64+
this._value = ApiTypeHelper.requireNonNull(builder._value, builder, "<variant value>");
65+
66+
}
67+
68+
public static IndexSettingsSimilarity of(Function<Builder, ObjectBuilder<IndexSettingsSimilarity>> fn) {
69+
return fn.apply(new Builder()).build();
70+
}
71+
72+
73+
public void serialize(JsonGenerator generator, JsonpMapper mapper) {
74+
mapper.serialize(_value, generator);
75+
}
76+
77+
public static class Builder extends ObjectBuilderBase implements ObjectBuilder<IndexSettingsSimilarity> {
78+
private Kind _kind;
79+
private IndexSettingsSimilarityVariant _value;
80+
81+
public ObjectBuilder<IndexSettingsSimilarity> bm25(IndexSettingsSimilarityBm25 v) {
82+
this._kind = Kind.Bm25;
83+
this._value = v;
84+
return this;
85+
}
86+
87+
public ObjectBuilder<IndexSettingsSimilarity> bm25(
88+
Function<IndexSettingsSimilarityBm25.Builder, ObjectBuilder<IndexSettingsSimilarityBm25>> fn) {
89+
return this.bm25(fn.apply(new IndexSettingsSimilarityBm25.Builder()).build());
90+
}
91+
92+
public ObjectBuilder<IndexSettingsSimilarity> boolean_(IndexSettingsSimilarityBoolean v) {
93+
this._kind = Kind.Boolean;
94+
this._value = v;
95+
return this;
96+
}
97+
98+
public ObjectBuilder<IndexSettingsSimilarity> boolean_(
99+
Function<IndexSettingsSimilarityBoolean.Builder, ObjectBuilder<IndexSettingsSimilarityBoolean>> fn) {
100+
return this.boolean_(fn.apply(new IndexSettingsSimilarityBoolean.Builder()).build());
101+
}
102+
103+
104+
@Override
105+
public IndexSettingsSimilarity build() {
106+
_checkSingleUse();
107+
return new IndexSettingsSimilarity(this);
108+
}
109+
}
110+
111+
public static final JsonpDeserializer<IndexSettingsSimilarity> _DESERIALIZER = ObjectBuilderDeserializer
112+
.lazy(Builder::new, IndexSettingsSimilarity::setupIndexSettingsSimilarityDeserializer, Builder::build);
113+
114+
protected static void setupIndexSettingsSimilarityDeserializer(ObjectDeserializer<Builder> op) {
115+
116+
op.add(Builder::bm25, IndexSettingsSimilarityBm25._DESERIALIZER, "BM25");
117+
op.add(Builder::boolean_, IndexSettingsSimilarityBoolean._DESERIALIZER, "boolean");
118+
119+
op.setTypeProperty("type", null);
120+
121+
}
122+
123+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,142 @@
1+
package org.opensearch.client.opensearch.indices;
2+
3+
import jakarta.json.stream.JsonGenerator;
4+
import javax.annotation.Nullable;
5+
import java.util.function.Function;
6+
import org.opensearch.client.json.JsonpDeserializable;
7+
import org.opensearch.client.json.JsonpDeserializer;
8+
import org.opensearch.client.json.JsonpMapper;
9+
import org.opensearch.client.json.JsonpSerializable;
10+
import org.opensearch.client.json.ObjectBuilderDeserializer;
11+
import org.opensearch.client.json.ObjectDeserializer;
12+
import org.opensearch.client.util.ObjectBuilder;
13+
import org.opensearch.client.util.ObjectBuilderBase;
14+
15+
16+
@JsonpDeserializable
17+
public class IndexSettingsSimilarityBm25 implements IndexSettingsSimilarityVariant, JsonpSerializable {
18+
19+
@Nullable
20+
private final Double b;
21+
22+
@Nullable
23+
private final Boolean discountOverlaps;
24+
25+
@Nullable
26+
private final Double k1;
27+
28+
29+
private IndexSettingsSimilarityBm25(Builder builder) {
30+
31+
this.b = builder.b;
32+
this.discountOverlaps = builder.discountOverlaps;
33+
this.k1 = builder.k1;
34+
35+
}
36+
37+
public static IndexSettingsSimilarityBm25 of(Function<Builder, ObjectBuilder<IndexSettingsSimilarityBm25>> fn) {
38+
return fn.apply(new Builder()).build();
39+
}
40+
41+
42+
@Override
43+
public IndexSettingsSimilarity.Kind _settingsSimilarityKind() {
44+
return IndexSettingsSimilarity.Kind.Bm25;
45+
}
46+
47+
@Override
48+
public void serialize(JsonGenerator generator, JsonpMapper mapper) {
49+
generator.writeStartObject();
50+
serializeInternal(generator, mapper);
51+
generator.writeEnd();
52+
}
53+
54+
protected void serializeInternal(JsonGenerator generator, JsonpMapper mapper) {
55+
56+
generator.write("type", "BM25");
57+
58+
if (this.b != null) {
59+
generator.writeKey("b");
60+
generator.write(this.b);
61+
62+
}
63+
if (this.discountOverlaps != null) {
64+
generator.writeKey("discount_overlaps");
65+
generator.write(this.discountOverlaps);
66+
67+
}
68+
if (this.k1 != null) {
69+
generator.writeKey("k1");
70+
generator.write(this.k1);
71+
72+
}
73+
74+
}
75+
76+
/**
77+
* Builder for {@link IndexSettingsSimilarityBm25}.
78+
*/
79+
80+
public static class Builder extends ObjectBuilderBase implements ObjectBuilder<IndexSettingsSimilarityBm25> {
81+
82+
@Nullable
83+
private Double b;
84+
85+
@Nullable
86+
private Boolean discountOverlaps;
87+
88+
@Nullable
89+
private Double k1;
90+
91+
/**
92+
* API name: {@code b}
93+
*/
94+
public final Builder b(@Nullable Double value) {
95+
this.b = value;
96+
return this;
97+
}
98+
99+
/**
100+
* API name: {@code discount_overlaps}
101+
*/
102+
public final Builder discountOverlaps(@Nullable Boolean value) {
103+
this.discountOverlaps = value;
104+
return this;
105+
}
106+
107+
/**
108+
* API name: {@code k1}
109+
*/
110+
public final Builder k1(@Nullable Double value) {
111+
this.k1 = value;
112+
return this;
113+
}
114+
115+
/**
116+
* Builds a {@link IndexSettingsSimilarityBm25}.
117+
*
118+
* @throws NullPointerException if some of the required fields are null.
119+
*/
120+
121+
public IndexSettingsSimilarityBm25 build() {
122+
_checkSingleUse();
123+
124+
return new IndexSettingsSimilarityBm25(this);
125+
}
126+
}
127+
128+
public static final JsonpDeserializer<IndexSettingsSimilarityBm25> _DESERIALIZER = ObjectBuilderDeserializer.lazy(
129+
Builder::new,
130+
IndexSettingsSimilarityBm25::setupIndexSettingsSimilarityBm25Deserializer
131+
);
132+
133+
protected static void setupIndexSettingsSimilarityBm25Deserializer(ObjectDeserializer<IndexSettingsSimilarityBm25.Builder> op) {
134+
135+
op.add(Builder::b, JsonpDeserializer.doubleDeserializer(), "b");
136+
op.add(Builder::discountOverlaps, JsonpDeserializer.booleanDeserializer(), "discount_overlaps");
137+
op.add(Builder::k1, JsonpDeserializer.doubleDeserializer(), "k1");
138+
139+
op.ignore("type");
140+
}
141+
142+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
package org.opensearch.client.opensearch.indices;
2+
3+
4+
import jakarta.json.stream.JsonGenerator;
5+
import java.util.function.Function;
6+
import org.opensearch.client.json.JsonpDeserializable;
7+
import org.opensearch.client.json.JsonpDeserializer;
8+
import org.opensearch.client.json.JsonpMapper;
9+
import org.opensearch.client.json.JsonpSerializable;
10+
import org.opensearch.client.json.ObjectBuilderDeserializer;
11+
import org.opensearch.client.json.ObjectDeserializer;
12+
import org.opensearch.client.util.ObjectBuilder;
13+
import org.opensearch.client.util.ObjectBuilderBase;
14+
15+
16+
@JsonpDeserializable
17+
public class IndexSettingsSimilarityBoolean implements IndexSettingsSimilarityVariant, JsonpSerializable {
18+
19+
private IndexSettingsSimilarityBoolean(Builder builder) {
20+
21+
}
22+
23+
public static IndexSettingsSimilarityBoolean of(Function<Builder, ObjectBuilder<IndexSettingsSimilarityBoolean>> fn) {
24+
return fn.apply(new Builder()).build();
25+
}
26+
27+
28+
@Override
29+
public IndexSettingsSimilarity.Kind _settingsSimilarityKind() {
30+
return IndexSettingsSimilarity.Kind.Boolean;
31+
}
32+
33+
@Override
34+
public void serialize(JsonGenerator generator, JsonpMapper mapper) {
35+
generator.writeStartObject();
36+
serializeInternal(generator, mapper);
37+
generator.writeEnd();
38+
}
39+
40+
protected void serializeInternal(JsonGenerator generator, JsonpMapper mapper) {
41+
42+
generator.write("type", "boolean");
43+
44+
}
45+
46+
47+
/**
48+
* Builder for {@link IndexSettingsSimilarityBoolean}.
49+
*/
50+
51+
public static class Builder extends ObjectBuilderBase implements ObjectBuilder<IndexSettingsSimilarityBoolean> {
52+
53+
public IndexSettingsSimilarityBoolean build() {
54+
_checkSingleUse();
55+
56+
return new IndexSettingsSimilarityBoolean(this);
57+
}
58+
}
59+
60+
61+
public static final JsonpDeserializer<IndexSettingsSimilarityBoolean> _DESERIALIZER = ObjectBuilderDeserializer.lazy(
62+
Builder::new,
63+
IndexSettingsSimilarityBoolean::setupIndexSettingsSimilarityBooleanDeserializer
64+
);
65+
66+
protected static void setupIndexSettingsSimilarityBooleanDeserializer(ObjectDeserializer<IndexSettingsSimilarityBoolean.Builder> op) {
67+
68+
op.ignore("type");
69+
}
70+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
package org.opensearch.client.opensearch.indices;
2+
3+
4+
import org.opensearch.client.json.JsonpSerializable;
5+
6+
public interface IndexSettingsSimilarityVariant extends JsonpSerializable {
7+
8+
IndexSettingsSimilarity.Kind _settingsSimilarityKind();
9+
10+
default IndexSettingsSimilarity _toSettingsSimilarity() {
11+
return new IndexSettingsSimilarity(this);
12+
}
13+
14+
}

0 commit comments

Comments
 (0)