Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.lambdadb.ai/llms.txt

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

A search query, or query, is a request for information about data in LambdaDB collections. LambdaDB supports several search methods:
  • Search for exact values: search for exact values or ranges of numbers, dates, IPs, or strings.
  • Full-text search: use full text queries to query unstructured textual data and find documents that best match query terms.
  • Vector search: store vectors in LambdaDB and use approximate nearest neighbor (ANN) to find vectors that are similar, supporting use cases like semantic search.
If you use managed embedding vector fields, see Managed embeddings for the current supported providers and models. Common parameters for the request body of a query are as follows:
ParameterDescriptionTypeRequiredDefault
sizeThe number of results to return for each queryinteger
queryQuery object (details in the subsections)object
includeVectorsIndicates whether vector values are included in the responsebooleanfalse
consistentReadDetermines the read consistency model: If set to true, then the operation uses strongly consistent reads; otherwise, the operation uses eventually consistent reads.booleanfalse
fieldsA list of field names to include and/or exclude in the result. Use dot notation (e.g., user.name) to specify nested fields.object
sortSpecifies the sorting criteria for the results (details in the subsection)object[]
partitionFilterPartition filterobject
Depending on your data and your query, you may get fewer than size results. This happens when size is larger than the number of possible matching documents for your query.
Setting includeVectors (or include_vectors in Python) to true will increase response size significantly, especially for high-dimensional vectors. Use this option only when vector data is specifically needed for your application.
includes is applied first, and then excludes is applied to the included fields when you set both in the fields parameter.
LambdaDB is eventually consistent by default, so there can be a slight delay before new or changed documents are visible to queries. If your application requires strong (read-after-write) consistency, set consistentRead (or consistent_read in Python) to true when querying data from a collection, at the expense of potential higher latency and cost.
Query results are returned in the following format:
FieldDescriptionType
tookMilliseconds it took LambdaDB to execute the requestlong
maxScoreHighest returned document scorefloat
totalThe total number of matching documentslong
docsContains returned documents and metadataobject[]

Example

from lambdadb import LambdaDB

with LambdaDB(project_api_key="YOUR_API_KEY", base_url="YOUR_BASE_URL", project_name="YOUR_PROJECT_NAME") as client:
    coll = client.collection("my_collection")
    results = coll.query(query={"queryString": {"query": "*:*"}}, size=10)
    # `results.docs` contains items (each item includes `doc` and `score`).
    # `results.documents` contains document bodies only (no scores).
The response will look like this:
{
  "took": 76,
  "maxScore": 1.0,
  "total": 1,
  "docs": [
    {
      "collection": "example_collection",
      "score": 1.0,
      "doc": {
        "id": "33201222",
        "url": "https://en.wikipedia.org/wiki/LambdaDB",
        "title": "LambdaDB is awesome",
        "text": null
      }
    }
  ],
  "isDocsInline": true
}
Matched documents are ordered by similarity from most similar to least similar by default. Similarity is expressed as a score, and it is calculated based on the BM25 algorithm for full-text search and the configured similarity metric for vector search.