Hanzo
Hanzo Skills Reference

Hanzo Search - High-Performance Search Engine

Hanzo Search is a high-performance search engine built as a Rust workspace with 22 crates. Fork of Meilisearch v1.37.0 with AI-powered ranking, vector search, and faceting. Designed for sub-50ms se...

Overview

Hanzo Search is a high-performance search engine built as a Rust workspace with 22 crates. Fork of Meilisearch v1.37.0 with AI-powered ranking, vector search, and faceting. Designed for sub-50ms search across millions of documents.

NOTE: Crate names are not yet renamed from upstream — the binary is still meilisearch, core engine is milli, and CLI tool is meilitool. Dual licensed: MIT for open-source use, with a separate enterprise license (LICENSE-EE).

Features

  • Full-text search: Typo-tolerant, prefix matching, phrase search
  • Vector search: Hybrid keyword + semantic search with embeddings
  • AI ranking: ML-based relevance scoring and reranking
  • Faceted search: Filterable, sortable, with distribution counts
  • Multi-index: Multiple independent search indices
  • RESTful API: Simple HTTP/JSON interface
  • Self-hostable: Single binary, no external dependencies

OSS Base

Fork of Meilisearch v1.37.0. Repo: hanzoai/search.

When to use

  • Adding search to applications or documentation
  • Building product catalogs with faceted filtering
  • Implementing hybrid keyword + semantic search
  • Replacing Elasticsearch/Algolia with a lighter alternative

Quick reference

ItemValue
TechRust workspace (22 crates)
Binarymeilisearch (not yet renamed from upstream)
Port7700 (default)
Repogithub.com/hanzoai/search

One-file quickstart

cd search

# Build
cargo build --release

# Run
./target/release/meilisearch --http-addr 0.0.0.0:7700 --master-key YOUR_KEY

# Index documents
curl -X POST http://localhost:7700/indexes/movies/documents \
  -H "Authorization: Bearer YOUR_KEY" \
  -H "Content-Type: application/json" \
  --data-binary @movies.json

# Search
curl http://localhost:7700/indexes/movies/search \
  -H "Authorization: Bearer YOUR_KEY" \
  -d '{"q": "batman", "limit": 10}'

Configuration

# Environment variables
MEILI_MASTER_KEY=your-master-key    # API authentication
MEILI_DB_PATH=./data.ms             # Data directory
MEILI_HTTP_ADDR=0.0.0.0:7700       # Listen address
MEILI_ENV=production                # production or development
MEILI_MAX_INDEXING_MEMORY=2Gi      # Indexing memory limit
# Create index with embedder
curl -X PATCH http://localhost:7700/indexes/docs/settings \
  -H "Authorization: Bearer YOUR_KEY" \
  -d '{
    "embedders": {
      "default": {
        "source": "openAi",
        "apiKey": "sk-...",
        "model": "text-embedding-3-small",
        "dimensions": 1536
      }
    }
  }'

# Hybrid search (keyword + vector)
curl http://localhost:7700/indexes/docs/search \
  -H "Authorization: Bearer YOUR_KEY" \
  -d '{"q": "how to deploy", "hybrid": {"semanticRatio": 0.5}}'

Workspace Crates

Key crates in the Rust workspace:

CratePurpose
meilisearchMain binary and HTTP API
milliCore indexing engine
index-schedulerAsync task scheduling
meilisearch-authAPI key management
meilitoolCLI maintenance tool
filter-parserQuery filter DSL
json-depth-checkerDocument validation
flatten-serde-jsonNested document flattening

Docker

docker run -p 7700:7700 \
  -v $(pwd)/meili_data:/meili_data \
  -e MEILI_MASTER_KEY=YOUR_KEY \
  ghcr.io/hanzoai/search:latest
  • hanzo/hanzo-database.md - PostgreSQL backend storage
  • hanzo/hanzo-datastore.md - Vector database integration

How is this guide?

Last updated on

On this page