weaviate

module
v1.5.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 10, 2021 License: BSD-3-Clause

README

Weaviate Weaviate logo

The ML-first vector search engine

Build Status Go Report Card Coverage Status Slack Newsletter

Description

Weaviate in a nutshell: Weaviate is a vector search engine and vector database. Weaviate uses machine learning to vectorize and store data, and to find answers to natural language queries. With Weaviate you can also bring your custom ML models to production scale.

Weaviate in detail: Weaviate is a low-latency vector search engine with out-of-the-box support for different media types (text, images, etc.). It offers Semantic Search, Question-Answer-Extraction, Classification, Customizable Models (PyTorch/TensorFlow/Keras), and more. Built from scratch in Go, Weaviate stores both objects and vectors, allowing for combining vector search with structured filtering with the fault-tolerance of a cloud-native database, all accessible through GraphQL, REST, and various language clients.

Weaviate helps ...

  1. Software Engineers (docs) - Who use Weaviate as an ML-first database for your applications.

    • Out-of-the-box modules for: NLP/semantic search, automatic classification and image similarity search.
    • Easy to integrate in your current architecture, with full CRUD support like you're used to from other OSS databases.
    • Cloud-native, distributed, runs well on Kubernetes and scales with your workloads.
  2. Data Engineers (docs) - Who use Weaviate as a vector database that is built up from the ground with ANN at its core, and with the same UX they love from Lucene-based search engines.

    • Weaviate has a modular setup that allows to use your own ML models inside Weaviate, but you can also use out-of-the-box ML models (e.g., SBERT, ResNet, fasttext, etc).
    • Weaviate takes care of the scalability, so that you don't have to.
    • Deploy and maintain ML models in production reliably and efficiently.
  3. Data Scientists (docs) - Who use Weaviate for a seamless handover of their Machine Learning models to MLOps.

    • Deploy and maintain your ML models in production reliably and efficiently.
    • Weaviate's modular design allows you to easily package any custom trained model you want.
    • Smooth and accelerated handover of your Machine Learning models to engineers.

GraphQL interface demo

Demo of Weaviate

Weaviate GraphQL demo on news article dataset containing: Transformers module, GraphQL usage, semantic search, _additional{} features, Q&A, and Aggregate{} function. You can the demo on this dataset in the GUI here: semantic search, Q&A, Aggregate.

Features

Weaviate makes it easy to use state-of-the-art ML models while giving you the scalability, ease of use, safety and cost-effectiveness of a purpose-built vector database. Most notably:

  • Fast queries
    Weaviate typically performs a 10-NN neighbor search out of millions of objects in considerably less than 100ms.

  • Any media type with Weaviate Modules
    Use State-of-the-Art ML model inference (e.g. Transformers) for Text, Images, etc. at search and query time to let Weaviate manage the process of vectorizing your data for your - or import your own vectors.

  • Combine vector and scalar search
    Weaviate allows for efficient combined vector and scalar searches, e.g “articles related to the COVID 19 pandemic published within the past 7 days”. Weaviate stores both your objects and the vectors and make sure the retrieval of both is always efficient. There is no need for a third party object storage.

  • Real-time and persistent
    Weaviate let’s you search through your data even if it’s currently being imported or updated. In addition, every write is written to a Write-Ahead-Log (WAL) for immediately persisted writes - even when a crash occurs.

  • Horizontal Scalability
    Scale Weaviate for your exact needs, e.g. High-Availability, maximum ingestion, largest possible dataset size, maximum queries per second, etc. (Currently under development, ETA Fall 2021)

  • Cost-Effectiveness
    Very large datasets do not need to be kept entirely in memory in Weaviate. At the same time available memory can be used to increase the speed of queries. This allows for a conscious speed/cost trade-off to suit every use case.

  • Graph-like connections between objects
    Make arbitrary connections between your objects in a graph-like fashion to resemble real-life connections between your data points. Traverse those connections using GraphQL.

Documentation

You can find detailed documentation in the developers section of our website or directly go to one of the docs using the links in the list below.

Additional material

Video

Reading

Examples

You can find code examples here

Support

Contributing

Directories

Path Synopsis
adapters
handlers/graphql
Package graphql provides the graphql endpoint for Weaviate
Package graphql provides the graphql endpoint for Weaviate
handlers/graphql/common/getmeta
Package getmeta aims to reduce the repition between loca/getmeta and network/getmeta
Package getmeta aims to reduce the repition between loca/getmeta and network/getmeta
handlers/graphql/descriptions
Package descriptions provides the descriptions as used by the graphql endpoint for Weaviate Package descriptions provides the descriptions as used by the graphql endpoint for Weaviate Package descriptions provides the descriptions as used by the graphql endpoint for Weaviate Package descriptions provides the descriptions as used by the graphql endpoint for Weaviate Package descriptions provides the descriptions as used by the graphql endpoint for Weaviate Package descriptions provides the descriptions as used by the graphql endpoint for Weaviate Package descriptions provides the descriptions as used by the graphql endpoint for Weaviate Package descriptions provides the descriptions as used by the graphql endpoint for Weaviate Package descriptions provides the descriptions as used by the graphql endpoint for Weaviate
Package descriptions provides the descriptions as used by the graphql endpoint for Weaviate Package descriptions provides the descriptions as used by the graphql endpoint for Weaviate Package descriptions provides the descriptions as used by the graphql endpoint for Weaviate Package descriptions provides the descriptions as used by the graphql endpoint for Weaviate Package descriptions provides the descriptions as used by the graphql endpoint for Weaviate Package descriptions provides the descriptions as used by the graphql endpoint for Weaviate Package descriptions provides the descriptions as used by the graphql endpoint for Weaviate Package descriptions provides the descriptions as used by the graphql endpoint for Weaviate Package descriptions provides the descriptions as used by the graphql endpoint for Weaviate
handlers/graphql/graphiql
Based on `graphiql.go` from https://github.com/graphql-go/handler only made RenderGraphiQL a public function.
Based on `graphiql.go` from https://github.com/graphql-go/handler only made RenderGraphiQL a public function.
handlers/graphql/local/aggregate
Package aggregate provides the local aggregate graphql endpoint for Weaviate
Package aggregate provides the local aggregate graphql endpoint for Weaviate
handlers/graphql/local/common_filters
Package common_filters provides the filters for the graphql endpoint for Weaviate
Package common_filters provides the filters for the graphql endpoint for Weaviate
handlers/graphql/utils
Package utils provides utility methods and classes to support the graphql endpoint for Weaviate
Package utils provides utility methods and classes to support the graphql endpoint for Weaviate
handlers/rest
Package rest with all rest API functions.
Package rest with all rest API functions.
repos/db/vector/hnsw/distancer
_ _ __ _____ __ ___ ___ __ _| |_ ___ \ \ /\ / / _ \/ _` \ \ / / |/ _` | __/ _ \ \ V V / __/ (_| |\ V /| | (_| | || __/ \_/\_/ \___|\__,_| \_/ |_|\__,_|\__\___| Copyright © 2016 - 2020 SeMI Technologies B.V. All rights reserved.
_ _ __ _____ __ ___ ___ __ _| |_ ___ \ \ /\ / / _ \/ _` \ \ / / |/ _` | __/ _ \ \ V V / __/ (_| |\ V /| | (_| | || __/ \_/\_/ \___|\__,_| \_/ |_|\__,_|\__\___| Copyright © 2016 - 2020 SeMI Technologies B.V. All rights reserved.
repos/db/vector/hnsw/distancer/asm
asm only has amd64 specific implementations at the moment
asm only has amd64 specific implementations at the moment
cmd
Code generated by go generate; DO NOT EDIT.
Code generated by go generate; DO NOT EDIT.
entities
moduletools
moduletools contains helpers that are passed to modules as part of their capability methods
moduletools contains helpers that are passed to modules as part of their capability methods
genesis
restapi
Package restapi Weaviate Genesis Server The Weaviate Genesis Server is used to bootstrap the P2P network of Weaviate instances Schemes: https Host: localhost BasePath: / Version: 0.1.0 Contact: Weaviate<hello@semi.technology> https://github.com/semi-technologies Consumes: - application/json Produces: - application/json swagger:meta
Package restapi Weaviate Genesis Server The Weaviate Genesis Server is used to bootstrap the P2P network of Weaviate instances Schemes: https Host: localhost BasePath: / Version: 0.1.0 Contact: Weaviate<hello@semi.technology> https://github.com/semi-technologies Consumes: - application/json Produces: - application/json swagger:meta
modules
text2vec-contextionary
modcontextionary concentrates some of the code that relates to the contextionary module, this must be extracted when Weaviate becomes modular.
modcontextionary concentrates some of the code that relates to the contextionary module, this must be extracted when Weaviate becomes modular.
test
tools
usecases
objects
package objects provides managers for all kind-related items, such as objects.
package objects provides managers for all kind-related items, such as objects.
schema/migrate
Package migrate provides a simple composer tool, which implements the Migrator interface and can take in any number of migrators which themselves have to implement the interface
Package migrate provides a simple composer tool, which implements the Migrator interface and can take in any number of migrators which themselves have to implement the interface

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL