View Source ExTypesense.Collection (ExTypesense v0.3.5)
Module for creating, listing and deleting collections and aliases.
In Typesense, a Collection is a group of related Documents that is roughly equivalent to a table in a relational database. When we create a collection, we give it a name and describe the fields that will be indexed when a document is added to the collection.
Link to this section Summary
Functions
Create collection from a map, or module name. Collection name is matched on table name if using Ecto schema by default.
Deletes a collection alias. The collection itself is not affected by this action.
Permanently drops a collection by collection name or module name.
Get a specific collection by string or module name.
Get a specific collection alias by string or module name.
Get the collection name by alias.
List all aliases and the corresponding collections that they map to.
Lists all collections.
Make changes in a collection's fields: adding, removing
or updating an existing field(s). Key name is drop
to
indicate which field is removed (example described below).
Only fields
can only be updated at the moment.
Upserts a collection alias.
Link to this section Types
Link to this section Functions
Create collection from a map, or module name. Collection name is matched on table name if using Ecto schema by default.
Please refer to these list of schema params.
examples
Examples
iex> schema = %{
...> name: "companies",
...> fields: [
...> %{name: "company_name", type: "string"},
...> %{name: "company_id", type: "int32"},
...> %{name: "country", type: "string", facet: true}
...> ],
...> default_sorting_field: "company_id"
...> }
iex> ExTypesense.create_collection(schema)
%ExTypesense.Collection{
created_at: 1234567890,
default_sorting_field: "company_id",
fields: [...],
name: "companies",
num_documents: 0,
symbols_to_index: [],
token_separators: []
}
iex> ExTypesense.create_collection(Person)
%ExTypesense.Collection{
created_at: 1234567890,
default_sorting_field: "person_id",
fields: [...],
name: "persons",
num_documents: 0,
symbols_to_index: [],
token_separators: []
}
Deletes a collection alias. The collection itself is not affected by this action.
Permanently drops a collection by collection name or module name.
Note: dropping a collection does not remove the referenced alias, only the indexed documents.
Get a specific collection by string or module name.
Get a specific collection alias by string or module name.
Get the collection name by alias.
@spec list_collection_aliases() :: response()
List all aliases and the corresponding collections that they map to.
@spec list_collections() :: response()
Lists all collections.
Make changes in a collection's fields: adding, removing
or updating an existing field(s). Key name is drop
to
indicate which field is removed (example described below).
Only fields
can only be updated at the moment.
Note: Typesense supports updating all fields except the
id
field (since it's a special field within Typesense).
examples
Examples
iex> fields = %{
...> fields: [
...> %{name: "num_employees", drop: true},
...> %{name: "company_category", type: "string"},
...> ],
...> }
iex> ExTypesense.update_collection_fields("companies", fields)
%ExTypesense.Collection{
created_at: 1234567890,
name: companies,
default_sorting_field: "company_id",
fields: [...],
num_documents: 0,
symbols_to_index: [],
token_separators: []
}
iex> ExTypesense.update_collection_fields(Company, fields)
%ExTypesense.Collection{
created_at: 1234567890,
name: companies,
default_sorting_field: "company_id",
fields: [...],
num_documents: 0,
symbols_to_index: [],
token_separators: []
}
upsert_collection_alias(alias_name, collection_name)
View Source (since 0.1.0)Upserts a collection alias.