.
This commit is contained in:
+29
-3
@@ -12,6 +12,7 @@ pub use tantivy::schema::document::{Document, Value};
|
||||
pub use tantivy::indexer::IndexWriter;
|
||||
|
||||
pub use error::{Result, SearchError};
|
||||
use gl_graph::vocab;
|
||||
pub use index::{SearchIndex, SearchIndexBuilder};
|
||||
pub use schema::Schema;
|
||||
|
||||
@@ -20,12 +21,37 @@ pub enum DocType {
|
||||
RdfsClass = 1,
|
||||
SkosConcept = 2,
|
||||
Person = 3,
|
||||
CorporateBody = 4,
|
||||
Work = 5,
|
||||
Expression = 6,
|
||||
Manifestation = 7,
|
||||
}
|
||||
|
||||
impl DocType {
|
||||
pub fn from_named_node(node: NamedNodeRef) -> Option<Self> {
|
||||
match node.as_str() {
|
||||
"http://rdaregistry.info/Elements/c/C10004" => Some(DocType::Person),
|
||||
pub fn to_named_node(&self) -> NamedNodeRef<'_> {
|
||||
match self {
|
||||
DocType::RdfProperty => vocab::rdf::PROPERTY,
|
||||
DocType::RdfsClass => vocab::rdfs::CLASS,
|
||||
DocType::SkosConcept => vocab::skos::CONCEPT,
|
||||
DocType::Person => vocab::rdac::PERSON,
|
||||
DocType::CorporateBody => vocab::rdac::CORPORATE_BODY,
|
||||
DocType::Work => vocab::rdac::WORK,
|
||||
DocType::Expression => vocab::rdac::EXPRESSION,
|
||||
DocType::Manifestation => vocab::rdac::MANIFESTATION,
|
||||
}
|
||||
}
|
||||
|
||||
pub fn from_named_node<'a>(node: impl Into<NamedNodeRef<'a>>) -> Option<Self> {
|
||||
let node = node.into();
|
||||
match node {
|
||||
vocab::rdf::PROPERTY => Some(DocType::RdfProperty),
|
||||
vocab::rdfs::CLASS => Some(DocType::RdfsClass),
|
||||
vocab::skos::CONCEPT => Some(DocType::SkosConcept),
|
||||
vocab::rdac::PERSON => Some(DocType::Person),
|
||||
vocab::rdac::CORPORATE_BODY => Some(DocType::CorporateBody),
|
||||
vocab::rdac::WORK => Some(DocType::Work),
|
||||
vocab::rdac::EXPRESSION => Some(DocType::Expression),
|
||||
vocab::rdac::MANIFESTATION => Some(DocType::Manifestation),
|
||||
_ => None,
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user