Full-Text Search
Find the needle, keep the haystack.

Powerful search — keyword, semantic, hybrid — agent and human-friendly CLI and SDK. Add your items, write a query, get results.

Everything You Need for Search

Three Search Modes

Keyword search for exact matches, semantic search for meaning, and hybrid mode that combines both. Choose per query.

Simple SDK

One package, a few lines of code. Index documents, run searches, get highlighted results. Works with any JavaScript or TypeScript project.

Facets & Filters

Narrow results with field-based filters and get faceted counts. Build rich search experiences without extra infrastructure.

Up and Running in Minutes

Install the SDK, index your data, and start searching.

1

Install the CLI & authenticate

terminal
npm install -g @podge/cli
podge auth login
2

Describe what you want

prompt
# Give your AI coding agent a prompt like this:

Build a TypeScript Express API with 2 routes:

1. Add a book
2. Search for books based on title and description

Use Podge as the storage and search engine.
You can view the Node SDK here: npmjs.com/package/@podge/sdk-node
Result

Searching "american" returned the two relevant books:

  1. The Great Gatsby — "A novel about the American dream in the Jazz Age"
  2. To Kill a Mockingbird — "A story about racial injustice in the American South"

And correctly excluded "1984" which has no mention of "american".

app.ts
import Podge from '@podge/sdk'

const podge = new Podge({
  workspace: 'my-workspace',
  environment: 'production',
})

// Index a document
await podge.index({
  collection: 'products',
  documents: [
    {
      id: '1',
      title: 'Wireless Headphones',
      description: 'Premium noise-cancelling headphones',
      price: 299
    }
  ]
})

// Search with highlights
const results = await podge.search({
  collection: 'products',
  query: 'noise cancelling',
  options: {
    mode: 'hybrid',
    highlight: { pre_tag: '<mark>', post_tag: '</mark>' }
  }
})

// results.count      — results returned
// results.total      — total matching documents
// results.results[]  — matched documents with highlights
Get Started