[][src]Struct elasticsearch::BulkOperations

pub struct BulkOperations { /* fields omitted */ }

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("1", IndexDoc { foo: "index" })
    .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

impl BulkOperations[src]

pub fn new() -> Self[src]

Initializes a new instance of BulkOperations

pub fn with_bytes(buf: BytesMut) -> Self[src]

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

pub fn push<O, B>(&mut self, op: O) -> Result<(), Error> where
    O: Into<BulkOperation<B>>,
    B: Serialize
[src]

Pushes a bulk operation into the collection of bulk operations.

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

Trait Implementations

impl Body for BulkOperations[src]

impl Default for BulkOperations[src]

Auto Trait Implementations

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.