OpenViSTAI · Agents · Blockchain · Crypto
Menu
RAG & Knowledge Systems

Mettis

Mettis is a Go-based distributed vector database for indexing documents and retrieving them through proximity-ranked full-text search and HNSW cosine-distance semantic search. It combines the result sets with reciprocal-rank fusion, uses a separate Python HTTP embedding service, supports in-memory serving and disk persistence, and describes Raft-based segment replication.

Independent OpenViST project profile, based on linked sources.

Mettis — OpenViST project profile in RAG & Knowledge Systems.
OpenViST project illustration. See the linked sources for product details.
Understand the project

Practical overview

When it fits

Use Mettis when you want to prototype or study a self-hosted search backend and can operate a separate embedding service alongside the Go database.

Who it is for

  • Developers building a self-hosted document retrieval backend.
  • Engineers exploring or adapting a Go search database with both keyword and vector retrieval.

Documented uses

  • Index text documents through an HTTP endpoint.
  • Search indexed content using full-text and semantic retrieval.
  • Combine keyword and vector result rankings.
  • Explore a Raft-based replicated search setup.
Before you choose

Requirements & limits

  • The embedding service is a separate Python HTTP component and must be addressed through the EmbeddingHost environment variable.
  • The README explicitly describes the project as not production-ready.
  • The repository metadata identifies the project as public but provides no license.

Check current requirements in the official documentation. Source-based guidance does not mean OpenViST has run or independently tested this project.

Source-based practical guide

Start a single-node Mettis instance

Configure the documented Python embedding service and start one database node.

Before you start

  • The project repository and its third_party embedding-service files
  • Python with pip and the Go toolchain
  • An address for the embedding service

Steps

  1. Install the embedding-service dependencies with the command below from the third_party folder.

    Documented command
    pip install -r requirements.txt
  2. Start the embedding service with uvicorn main:app.

  3. Set EmbeddingHost to the service endpoint, such as http://127.0.0.1:8000/embeddings.

  4. Start one database node with the command below.

    Documented command
    go run cmd/server/main.go -httpAddr 127.0.0.1:8111 -nodeId 0 -raftAddr 127.0.0.1:9000

Expected outcome

A single Mettis node is configured to use the embedding service; the README documents HTTP endpoints for indexing and searching.

Guide limitations

  • The README says the project is not production-ready.
  • This setup guide does not establish successful execution or production suitability.
Source-based practical guide

Index and search a document through the HTTP API

Use the documented endpoints to submit a text document and a search query.

Before you start

  • A running Mettis node configured with its embedding service
  • An HTTP client such as curl

Steps

  1. Send a JSON document containing a text field to POST /index.

  2. Send a JSON query containing a query field to GET /search.

Expected outcome

The README provides request examples for indexing text and searching the database.

Guide limitations

  • The examples do not document response formats or query options.
  • The README says the project is not production-ready.
Evidence and transparency

Sources & review

Source record details
Source availability
Active
Sources checked
18 October 2026
Original website title
farouqzaib/mettis · Official homepage title · retained in its source language