Skip to content

Commit ea1ae44

Browse files
renatogm24rgaray-disney
authored andcommitted
Add pipeline setup to index and create operations (#587)
Co-authored-by: Renato <[email protected]>
1 parent 26f9283 commit ea1ae44

File tree

2 files changed

+37
-2
lines changed

2 files changed

+37
-2
lines changed

Diff for: java-client/src/main/java/co/elastic/clients/elasticsearch/_helpers/bulk/IngesterOperation.java

+14-2
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ private static IngesterOperation createOperation(BulkOperation operation, JsonpM
8080
BinaryData binaryDoc = BinaryData.of(create.document(), mapper);
8181
size += binaryDoc.size();
8282
newOperation = BulkOperation.of(bo -> bo.create(idx -> {
83-
copyBaseProperties(create, idx);
83+
copyCreateProperties(create, idx);
8484
return idx.document(binaryDoc);
8585
}));
8686
}
@@ -102,7 +102,7 @@ private static IngesterOperation indexOperation(BulkOperation operation, JsonpMa
102102
BinaryData binaryDoc = BinaryData.of(index.document(), mapper);
103103
size += binaryDoc.size();
104104
newOperation = BulkOperation.of(bo -> bo.index(idx -> {
105-
copyBaseProperties(index, idx);
105+
copyIndexProperties(index, idx);
106106
return idx.document(binaryDoc);
107107
}));
108108
}
@@ -154,6 +154,18 @@ private static void copyBaseProperties(BulkOperationBase op, BulkOperationBase.A
154154
.versionType(op.versionType());
155155
}
156156

157+
private static void copyIndexProperties(IndexOperation<?> op, IndexOperation.Builder<?> builder) {
158+
copyBaseProperties(op, builder);
159+
builder.pipeline(op.pipeline());
160+
builder.requireAlias(op.requireAlias());
161+
}
162+
163+
private static void copyCreateProperties(CreateOperation<?> op, CreateOperation.Builder<?> builder) {
164+
copyBaseProperties(op, builder);
165+
builder.pipeline(op.pipeline());
166+
builder.requireAlias(op.requireAlias());
167+
}
168+
157169
private static int size(String name, @Nullable Boolean value) {
158170
if (value != null) {
159171
return name.length() + 12; // 12 added chars for "name":"false",

Diff for: java-client/src/test/java/co/elastic/clients/elasticsearch/_helpers/bulk/BulkIngesterTest.java

+23
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
import co.elastic.clients.elasticsearch.core.bulk.OperationType;
3030
import co.elastic.clients.elasticsearch.end_to_end.RequestTest;
3131
import co.elastic.clients.json.JsonpMapper;
32+
import co.elastic.clients.json.JsonpUtils;
3233
import co.elastic.clients.json.SimpleJsonpMapper;
3334
import co.elastic.clients.transport.ElasticsearchTransport;
3435
import co.elastic.clients.transport.Endpoint;
@@ -358,6 +359,28 @@ public void beforeBulk(long executionId, BulkRequest request, List<Void> context
358359
assertEquals("bar", storedRequest.get().routing());
359360
}
360361

362+
@Test
363+
public void pipelineTest() {
364+
String json = "{\"create\":{\"_id\":\"some_id\",\"_index\":\"some_idx\",\"pipeline\":\"pipe\",\"require_alias\":true}}";
365+
JsonpMapper mapper = new SimpleJsonpMapper();
366+
367+
BulkOperation create = BulkOperation.of(o -> o.create(c -> c
368+
.pipeline("pipe")
369+
.requireAlias(true)
370+
.index("some_idx")
371+
.id("some_id")
372+
.document("Some doc")
373+
));
374+
375+
String createStr = JsonpUtils.toJsonString(create, mapper);
376+
assertEquals(json, createStr);
377+
378+
BulkOperation create1 = IngesterOperation.of(create, mapper).operation();
379+
380+
String create1Str = JsonpUtils.toJsonString(create1, mapper);
381+
assertEquals(json, create1Str);
382+
}
383+
361384
@Test
362385
public void endToEndTest() throws Exception {
363386
String index = "bulk-ingester-test";

0 commit comments

Comments
 (0)