Current section

Files

Jump to
noizu_weaviate lib weaviate_structs class.ex
Raw

lib/weaviate_structs/class.ex

defmodule WeaviateStructs.Class do
@moduledoc """
Struct for representing a class in Weaviate schema.
"""
defstruct [
:name,
:description,
:vectorizer,
:vector_index,
:vector_index_config,
:inverted_index_config,
:stopwords_config,
:replication_config,
:module_config,
:properties,
:inverted_index,
:vector_indexer_done,
:vector_search_available,
:vector_search_config,
:vector_search_indexer_done
]
@enforce_keys [:name]
@type t :: %__MODULE__{
name: String.t(),
description: String.t(),
vectorizer: String.t(),
vector_index: String.t(),
vector_index_config: map(),
inverted_index_config: map(),
stopwords_config: map(),
replication_config: map(),
module_config: map(),
properties: list(WeaviateStructs.Property.t()),
inverted_index: boolean,
vector_indexer_done: boolean,
vector_search_available: boolean,
vector_search_config: map(),
vector_search_indexer_done: boolean
}
def from_json(%{
"name" => name,
"description" => description,
"vectorizer" => vectorizer,
"vector_index" => vector_index,
"vector_index_config" => vector_index_config,
"inverted_index_config" => inverted_index_config,
"stopwords_config" => stopwords_config,
"replication_config" => replication_config,
"module_config" => module_config,
"properties" => properties,
"inverted_index" => inverted_index,
"vector_indexer_done" => vector_indexer_done,
"vector_search_available" => vector_search_available,
"vector_search_config" => vector_search_config,
"vector_search_indexer_done" => vector_search_indexer_done
}) do
%__MODULE__{
name: name,
description: description,
vectorizer: vectorizer,
vector_index: vector_index,
vector_index_config: vector_index_config,
inverted_index_config: inverted_index_config,
stopwords_config: stopwords_config,
replication_config: replication_config,
module_config: module_config,
properties: Enum.map(properties, &WeaviateStructs.Property.from_json/1),
inverted_index: inverted_index,
vector_indexer_done: vector_indexer_done,
vector_search_available: vector_search_available,
vector_search_config: vector_search_config,
vector_search_indexer_done: vector_search_indexer_done
}
end
end