Struct tantivy_columnar::ColumnarWriter
source · pub struct ColumnarWriter { /* private fields */ }
Expand description
Makes it possible to create a new columnar.
use tantivy_columnar::ColumnarWriter;
let mut columnar_writer = ColumnarWriter::default();
columnar_writer.record_str(0u32 /* doc id */, "product_name", "Red backpack");
columnar_writer.record_numerical(0u32 /* doc id */, "price", 10u64);
columnar_writer.record_str(1u32 /* doc id */, "product_name", "Apple");
columnar_writer.record_numerical(0u32 /* doc id */, "price", 10.5f64); //< uh oh we ended up mixing integer and floats.
let mut wrt: Vec<u8> = Vec::new();
columnar_writer.serialize(2u32, None, &mut wrt).unwrap();
Implementations§
source§impl ColumnarWriter
impl ColumnarWriter
pub fn mem_usage(&self) -> usize
sourcepub fn sort_order(
&self,
sort_field: &str,
num_docs: RowId,
reversed: bool
) -> Vec<u32>
pub fn sort_order( &self, sort_field: &str, num_docs: RowId, reversed: bool ) -> Vec<u32>
Returns the list of doc ids from 0..num_docs sorted by the sort_field
column.
If the column is multivalued, use the first value for scoring. If no value is associated to a specific row, the document is assigned the lowest possible score.
The sort applied is stable.
sourcepub fn record_column_type(
&mut self,
column_name: &str,
column_type: ColumnType,
sort_values_within_row: bool
)
pub fn record_column_type( &mut self, column_name: &str, column_type: ColumnType, sort_values_within_row: bool )
Records a column type. This is useful to bypass the coercion process,
makes sure the empty is present in the resulting columnar, or set
the sort_values_within_row
.
sort_values_within_row
is only allowed for Bytes
or Str
columns.
pub fn record_numerical<T: Into<NumericalValue> + Copy>( &mut self, doc: RowId, column_name: &str, numerical_value: T )
pub fn record_ip_addr( &mut self, doc: RowId, column_name: &str, ip_addr: Ipv6Addr )
pub fn record_bool(&mut self, doc: RowId, column_name: &str, val: bool)
pub fn record_datetime( &mut self, doc: RowId, column_name: &str, datetime: DateTime )
pub fn record_str(&mut self, doc: RowId, column_name: &str, value: &str)
pub fn record_bytes(&mut self, doc: RowId, column_name: &str, value: &[u8])
pub fn serialize( &mut self, num_docs: RowId, old_to_new_row_ids: Option<&[RowId]>, wrt: &mut dyn Write ) -> Result<()>
Trait Implementations§
source§impl Default for ColumnarWriter
impl Default for ColumnarWriter
source§fn default() -> ColumnarWriter
fn default() -> ColumnarWriter
Returns the “default value” for a type. Read more
Auto Trait Implementations§
impl Freeze for ColumnarWriter
impl RefUnwindSafe for ColumnarWriter
impl Send for ColumnarWriter
impl Sync for ColumnarWriter
impl Unpin for ColumnarWriter
impl UnwindSafe for ColumnarWriter
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
Mutably borrows from an owned value. Read more
source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Convert
Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
. Box<dyn Any>
can
then be further downcast
into Box<ConcreteType>
where ConcreteType
implements Trait
.source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Convert
Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
.source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert
&Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s.source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s.