[−][src]Struct elasticsearch::BulkOperations
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]
O: Into<BulkOperation<B>>,
B: Serialize,
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]
fn bytes(&self) -> Option<Bytes>
[src]
fn write(&self, bytes: &mut BytesMut) -> Result<(), Error>
[src]
impl Default for BulkOperations
[src]
Auto Trait Implementations
impl RefUnwindSafe for BulkOperations
impl Send for BulkOperations
impl Sync for BulkOperations
impl Unpin for BulkOperations
impl UnwindSafe for BulkOperations
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,