pub struct BulkOperations { /* private fields */ }
Expand description

A collection of bulk operations.

A collection of bulk operations can perform operations against multiple different indices, specifying a different source document for each. When modelling source documents with different structs, it becomes difficult to construct a collection of bulk operations with such a setup. BulkOperations alleviates this difficulty by serializing bulk operations ahead of time of the bulk API call, into an internal byte buffer, using the buffered bytes as the body of the bulk API call.

Example

Using BulkOperations to construct a collection of bulk operations that use different structs to model source documents

#[derive(Serialize)]
struct IndexDoc<'a> {
    foo: &'a str,
}

#[derive(Serialize)]
struct CreateDoc<'a> {
    bar: &'a str,
}

#[derive(Serialize)]
struct UpdateDoc<'a> {
    baz: &'a str,
}

let mut ops = BulkOperations::new();
ops.push(BulkOperation::index(IndexDoc { foo: "index" })
    .id("1")
    .pipeline("pipeline")
    .index("index_doc")
    .routing("routing")
)?;
ops.push(BulkOperation::create("2", CreateDoc { bar: "create" }))?;
ops.push(BulkOperation::update("3", UpdateDoc { baz: "update" }))?;
ops.push(BulkOperation::<()>::delete("4"))?;

let bulk_response = client.bulk(BulkParts::Index("tweets"))
    .body(vec![ops])
    .send()
    .await?;

Implementations

Initializes a new instance of BulkOperations

Initializes a new instance of BulkOperations, using the passed bytes::BytesMut as the buffer to write operations to

Pushes a bulk operation into the collection of bulk operations.

The operation is serialized and written to the underlying byte buffer.

Trait Implementations

An existing immutable buffer that can be used to avoid having to write to another buffer that will then be written to the request stream. Read more
Write to a buffer that will be written to the request stream
Returns the “default value” for a type. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Instruments this type with the current Span, returning an Instrumented wrapper. Read more

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

The type returned in the event of a conversion error.
Performs the conversion.
The type returned in the event of a conversion error.
Performs the conversion.
Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more