PricingDocsTutorialsBlogAbout

Develop

Get Started
Store Embeddings
Generate Embeddings
Automatic Embedding Generation
Calculate Distance
Query Embeddings
Create Index
Quantization
Asynchronous Tasks
Weighted Vector Search
Troubleshooting
Single Operator
Postgres Notes
Security

Languages

Javascript
Python
Ruby
Rust

Migrate

Migrate from Postgres to Lantern Cloud
Migrate from pgvector to Lantern Cloud
Migrate from pgvector to self-hosted Lantern
Migrate from Pinecone to Lantern Cloud

Lantern HNSW

Installation

Lantern Extras

Installation
Generate Embeddings
Lantern Daemon

Lantern CLI

Installation
Generate Embeddings
Indexing Server
Daemon
Autotune Index
Product Quantization

Contributing

Dockerfile
Visual Studio Code

Develop

Single Operator

Lantern adds experimental support for a single operator <?>. The operator has the following benefits

  • One operator for all index queries
  • Automatically detect when the operator is being used without an index

Setup

To enable the extension, set the runtime parameter lantern.pgvector_compat to FALSE. See below for an example, and see notes on Postgres configuration for more details on how to set this parameter.

sql
Copy
SET lantern.pgvector_compat = FALSE;

Usage

You can create an index using the steps documented here. Then, at query time, you can just use the operator <?> to perform nearest neighbor search queries. Lantern will automatically infer the distance metric to use.

For example, you can create the following index.

sql
Copy
CREATE INDEX
    book_index
ON
    books
USING
    hnsw (book_embedding dist_l2sq_ops)
WITH (
    M = 2,
    ef_construction = 10,
    ef = 4,
    dim = 3
);

Then, you can query the index like so:

sql
Copy
SELECT title FROM books ORDER BY ARRAY[0,0,1] <?> book_embedding;

Note that the operator can only be used in an ORDER BY. For example, the following queries will not work

sql
Copy
SELECT book_embedding <?> ARRAY[0,0,1] FROM books;
SELECT book_embedding <?> ARRAY[0,0,1] FROM books <?> book_embedding;

Edit this page

On this page

  • Setup
  • Usage
PricingDocsTutorialsBlogAbout
LoginSign Up