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§
Source§impl BulkOperations
impl BulkOperations
Sourcepub fn new() -> Self
pub fn new() -> Self
Initializes a new instance of BulkOperations
Sourcepub fn with_bytes(buf: BytesMut) -> Self
pub fn with_bytes(buf: BytesMut) -> Self
Initializes a new instance of BulkOperations, using the passed bytes::BytesMut as the buffer to write operations to
Trait Implementations§
Auto Trait Implementations§
impl Freeze for BulkOperations
impl RefUnwindSafe for BulkOperations
impl Send for BulkOperations
impl Sync for BulkOperations
impl Unpin for BulkOperations
impl UnwindSafe for BulkOperations
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more