v1.0.0 - API Updates (breaking) and Module support
Docker image/tag: semitechnologies/weaviate:1.0.0
See also: example docker-compose files in English, Dutch, German, Czech, Italian. If you need to configure additional settings, you can also generate a custom docker-compose.yml
file using the documentation.
Breaking Changes
-
API Changes
This release contains breaking API changes. The motivation behind changing the API is two-fold:
- Starting with this release Weaviate supports a new module system which allows for easy extension of Weaviate. Furthermore it makes it possible to configure Weaviate for various use cases. If no module is configured, Weaviate is a generic vector search engine. It is agnostic of which machine learning models were used to produce those vectors. It only cares about you attaching those vectors to your data objects at import time. You can then search by vector or run classifications, etc. All text-specific features, such as vectorizing the text of an object at import time or searching by vector through text which is vectorized at search time, have been moved into the first official module:
text2vec-contextionary
. As a result, changes in the API were necessary to reflect the more modular approach that Weaviate is taking from now on - Additionally, this major release is used to clean up other UX-related issues that would have been breaking in the past. These might include renamings, or slight restructuring of APIs.
The official migration guide from
0.23.x
tov1.0.0
can be found in the documentation. The most notable changes are also briefly listed below:All RESTful API changes
- from
/v1/schema/things/{ClassName}
to/v1/schema/{ClassName}
- from
/v1/schema/actions/{ClassName}
to/v1/schema/{ClassName}
from/v1/schema/actions/{ClassName}
to/v1/schema/{ClassName}
- from
/v1/things
to/v1/objects
- from
/v1/actions
to/v1/objects
- from
/v1/batching/things
to/v1/batch/objects
- from
/v1/batching/actions
to/v1/batch/objects
- from
/v1/batching/references
to/v1/batch/references
- Additional data object properties are grouped in
?include=...
and the leading underscore of these properties is removed - The
/v1/modules/
endpoint is introduced. - the
/v1/meta/
endpoint now contains module specific information in"modules"
All GraphQL API changes
- Removal of Things and Actions layer in query hierarchy
- Reference properties of data objects are lowercase (previously uppercased)
- Underscore properties, uuid and certainty are now grouped in the object
_additional
explore()
filter is renamed tonear<MediaType>
filternearVector(vector:[])
filter is introduced inGet{}
queryExplore (concepts: ["foo"]){}
query is changed toExplore (near<MediaType>: ... ) {}
.
All data schema changes
- Removal of Things and Actions
- Per class and per property configuration is changed to support modules and vector index type settings.
All data object changes
- From
schema
toproperties
in the data object.
Contextionary
- Contextionary is renamed to the module
text2vec-contextionary
/v1/c11y/concepts
to/v1/modules/text2vec-contextionary/concepts
/v1/c11y/extensions
to/v1/modules/text2vec-contextionary/extensions
/v1/c11y/corpus
is removed
Other
- Removal of
/things
and/actions
in short and long beacons - Classification body is changed to support modularization
DEFAULT_VECTORIZER_MODULE
is a new environment variable
- Starting with this release Weaviate supports a new module system which allows for easy extension of Weaviate. Furthermore it makes it possible to configure Weaviate for various use cases. If no module is configured, Weaviate is a generic vector search engine. It is agnostic of which machine learning models were used to produce those vectors. It only cares about you attaching those vectors to your data objects at import time. You can then search by vector or run classifications, etc. All text-specific features, such as vectorizing the text of an object at import time or searching by vector through text which is vectorized at search time, have been moved into the first official module:
New Features
none
Fixes
- Please note that all releases and git tags are now prefixed with a
v
as is the convention for Golang projects. This should have no user-facing effects. The docker tags are not affected and do not lead with av
, (e.g.weaviate:1.0.0
).
Notes
Thanks to the entire SeMI team for an amazing collaboration on getting this release out on time. Especially thanks to
- @antas-marcin for contributing to Weaviate itself, as well as the Weaviate Go Client
- @laura-ham for taking a lead in coordinating this release, all new documentation and co-authoring these release notes
- @StefanBogdan for updating the Weaviate Python Client
- @halvespereira for the brand new Weaviate Console
- ... and the rest of the team for their patience, guidance and evaluating various release candidates!