Skip to content

v1.0.0 - API Updates (breaking) and Module support

Compare
Choose a tag to compare
@etiennedi etiennedi released this 14 Jan 08:50
1f904ac

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 to v1.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 to near<MediaType> filter
    • nearVector(vector:[]) filter is introduced in Get{} query
    • Explore (concepts: ["foo"]){} query is changed to Explore (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 to properties 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

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 a v, (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