Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.vectoraidb.actian.com/llms.txt

Use this file to discover all available pages before exploring further.

Must filters require all specified conditions to be true. Use must filters when you need strict requirements, such as filtering by user permissions, availability status, or regulatory constraints.
Before you begin, make sure you have a running VectorAI DB instance and a products collection with 128-dimensional vectors and payload fields: category (string) and price (float).
from actian_vectorai import VectorAIClient, FilterBuilder, Field
import random

# Connect to VectorAI DB server
with VectorAIClient("localhost:6574") as client:
    # Generate query vector
    query_vector = [random.gauss(0, 1) for _ in range(128)]
    
    # Filter: category must equal "electronics" AND price < $100
    filter = FilterBuilder()\
        .must(Field("category").eq("electronics"))\
        .must(Field("price").lt(100.0))\
        .build()
    
    # Search with filter
    results = client.points.search(
        "products",  # Collection name
        vector=query_vector,  # Query vector
        limit=10,  # Maximum results
        filter=filter  # Apply filter
    )
    
    # Display results
    for result in results:
        print(f"ID: {result.id}, Score: {result.score}")
        print(f"Category: {result.payload['category']}")
        print(f"Price: ${result.payload['price']}")
Each result includes these fields:
  • id: The unique identifier of the matching point.
  • score: Similarity score based on vector distance.
  • payload: Full metadata dictionary for the matching point.