mirror of
https://github.com/quickwit-oss/tantivy.git
synced 2025-12-23 02:29:57 +00:00
41 lines
1.4 KiB
Rust
41 lines
1.4 KiB
Rust
use tantivy::schema::*;
|
|
|
|
// # Document from json
|
|
//
|
|
// For convenience, `Document` can be parsed directly from json.
|
|
fn main() -> tantivy::Result<()> {
|
|
// Let's first define a schema and an index.
|
|
// Check out the basic example if this is confusing to you.
|
|
//
|
|
// first we need to define a schema ...
|
|
let mut schema_builder = Schema::builder();
|
|
schema_builder.add_text_field("title", TEXT | STORED);
|
|
schema_builder.add_text_field("body", TEXT);
|
|
schema_builder.add_u64_field("year", INDEXED);
|
|
let schema = schema_builder.build();
|
|
|
|
// Let's assume we have a json-serialized document.
|
|
let mice_and_men_doc_json = r#"{
|
|
"title": "Of Mice and Men",
|
|
"year": 1937
|
|
}"#;
|
|
|
|
// We can parse our document
|
|
let _mice_and_men_doc = schema.parse_document(mice_and_men_doc_json)?;
|
|
|
|
// Multi-valued field are allowed, they are
|
|
// expressed in JSON by an array.
|
|
// The following document has two titles.
|
|
let frankenstein_json = r#"{
|
|
"title": ["Frankenstein", "The Modern Prometheus"],
|
|
"year": 1818
|
|
}"#;
|
|
let _frankenstein_doc = schema.parse_document(frankenstein_json)?;
|
|
|
|
// Note that the schema is saved in your index directory.
|
|
//
|
|
// As a result, Indexes are aware of their schema, and you can use this feature
|
|
// just by opening an existing `Index`, and calling `index.schema()..parse_document(json)`.
|
|
Ok(())
|
|
}
|