# Indx

> Indx is a high-performance, typo-tolerant search engine for developers. It
> matches at the character-pattern level instead of relying on tokenizers or
> per-language stemmers, and can be embedded as a .NET library or run as a
> hosted HTTP API.

## What Indx Is

Indx is a high-performance search engine designed for developers.
It operates directly on structured and unstructured text (typically JSON) and
focuses on fast, reliable retrieval with minimal configuration.

Indx is built to work well for:
- Exact term queries
- Partial and imperfect input
- Large datasets with predictable performance
- Both human-facing search and agent/tool usage

Indx can be embedded directly into applications or accessed via hosted services.

---

## Developer Experience

Indx eliminates the complexity typically associated with search engines.

You won't need to deal with:
- **Stop words** — all words are treated equally
- **Stemming or lemmatization** — no linguistic processing configuration
- **Analyzer chains** — no tokenizer or filter tuning
- **Query parsing edge cases** — queries work as written
- **Language-specific configuration** — works consistently across languages

This means:
- Predictable behavior from the start
- Minimal configuration overhead
- Results that match developer intuition
- Easier debugging and troubleshooting

Indx is designed to work well by default, without requiring deep search engine expertise.

---

## Core Search Model

Indx uses a **two-step search model**. This model is central to how relevance,
ranking, and performance are achieved.

### Step 1: Pattern Matching (Always Executed)

- Runs across **all documents** in the dataset
- Detects textual and structural patterns in the data
- Produces a candidate result set
- Extremely fast and tolerant of variation in input

This step provides:
- Strong recall
- Robust handling of typos and formatting differences
- Reliable behavior without query preprocessing or tuning

Exact queries are handled naturally in this phase, just as efficiently as partial
or imperfect queries.

---

### Step 2: Coverage (Optional)

Coverage is a refinement phase applied to the top-K results from pattern matching
(default: 500).

Coverage evaluates **how completely the query is represented in each document**.
It can:

- Lift exact and near-exact matches
- Improve ranking quality
- Truncate low-quality results at a defined threshold

Coverage focuses on result quality rather than raw matching speed.

---

## Human vs Agent Usage

Coverage behavior can be tuned depending on how search results are consumed:

- **Human search**
  - Pattern matches + coverage matches
  - Supports exploration and discovery

- **Agent or tool usage**
  - Coverage-focused results
  - Reduces noise and false positives

This distinction is intentional and allows the same index to support different
consumers effectively.

---

## Field Configuration Model

Indx uses explicit field configuration rather than implicit inference.

Fields can be marked as:
- **Searchable** — participate in matching and scoring
- **Filterable** — used in filters and boosts
- **Facetable** — used for aggregations and counts
- **Sortable** — used for ordering results

At least one field must be searchable.
Fields used in filters or boosts must be marked filterable.

This model keeps behavior predictable and avoids hidden configuration.

---

## Performance Characteristics

- Search is fast and consistent across dataset sizes
- Coverage scales linearly with configured depth
- No per-query tuning or analyzer configuration is required
- Indexing and querying are deterministic and explainable

---

## Typical Use Cases

Indx is commonly used for:
- Application-embedded search
- Product and content catalogs
- Internal tools and dashboards
- Developer platforms
- Agent-assisted retrieval workflows

It is designed to be simple to integrate while remaining powerful enough for
production systems.

---

## Summary

Indx is a developer-focused search engine built around a **two-step retrieval
model**:
1. Fast, broad pattern matching
2. Optional coverage-based refinement

This approach provides strong performance, high result quality, and reliable
behavior across exact, partial, and imperfect queries, without requiring complex
configuration or tuning.

## For AI agents

- [Indx agent skill](https://skills.sh/indxsearch/skill-indx-search/indx-search): Packaged knowledge of the C# and HTTP APIs, field configuration, filters and coverage tuning. Install with `npx skills add indxSearch/skill-indx-search`
- [AI agents guide](https://docs.indx.co/guides/ai-agents): Using the skill, the docs and the built-in MCP server together
- [Full docs as one file](https://docs.indx.co/llms-full.txt): The entire documentation site in a single Markdown file
- MCP server: every Indx server exposes read-only search tools over the Model Context Protocol (list datasets, describe a dataset, search, fetch a document), using the same API keys as the REST API

## Docs

- [Documentation (V5)](https://docs.indx.co): Guides and API reference for the current release (Indx Core v5, Indx v2 in beta)
- [Documentation (V4)](https://v4.docs.indx.co): Guides and API reference for the previous release
- [V4 docs llms.txt](https://v4.docs.indx.co/llms.txt): Index of the V4 documentation site
- [V5 docs llms.txt](https://docs.indx.co/llms.txt): Index of the V5 documentation site

## Articles

- [All articles](https://indx.co/articles): Guides and product updates
- [Let your coding agent integrate Indx](https://indx.co/articles/let-your-coding-agent-integrate-indx): A skill, agent-readable docs, and a built-in MCP server. Describe what you want searchable, and your agent does the rest.
- [Indx Core v5 is launched, and Indx v2 is in beta](https://indx.co/articles/announcing-indx-v5): A faster search engine, now released, and a redesigned cloud platform in beta. See what is new and how to try them.
- [Adding pattern-based search to your .NET app](https://indx.co/articles/adding-search-to-dotnet): Drop the IndxSearchLib NuGet package into a C# project and run your first search in a few minutes.
- [How Indx handles typos and fuzzy queries](https://indx.co/articles/fuzzy-search-typo-tolerance): Pattern matching gives you typo tolerance out of the box, with no synonym lists or distance tuning to maintain.
- [Boosting and merchandising for ecommerce search](https://indx.co/articles/ecommerce-boosting-merchandising): Promote the products you want to sell using field weights and boosts, without fighting the relevance engine.
- [Small search UX wins that lift conversion](https://indx.co/articles/search-ux-wins): Instant results, forgiving queries, and clear facets add up to a better experience and more conversions.

## Packages

- [IndxSearchLib](https://www.nuget.org/packages/IndxSearchLib/): The C# search library on NuGet, embedded in-process
- [@indxsearch/intrface](https://www.npmjs.com/package/@indxsearch/intrface): React search components: search input, filter panels, faceted navigation, sorting and results
- [@indxsearch/systm](https://www.npmjs.com/package/@indxsearch/systm): The design system and UI component library intrface is built on
- [@indxsearch/indx-types](https://www.npmjs.com/package/@indxsearch/indx-types): TypeScript types for the Indx HTTP API
- [@indxsearch/pixl](https://www.npmjs.com/package/@indxsearch/pixl): 7x5 pixel icons for React
- [Component showcase](https://indx-components.vercel.app): Live demos of every React component

## GitHub repositories

- [Indx](https://github.com/indxSearch/Indx): Self-hosted search service with a dashboard, HTTP API, JWT auth, teams and the MCP server (formerly IndxCloudApi)
- [skill-indx-search](https://github.com/indxSearch/skill-indx-search): Source of the Indx agent skill
- [indx-react](https://github.com/indxSearch/indx-react): Source of @indxsearch/intrface, @indxsearch/systm and @indxsearch/indx-types
- [indx-pixl](https://github.com/indxSearch/indx-pixl): Source of @indxsearch/pixl
- [indx-console](https://github.com/indxSearch/indx-console): Minimal C# console app that loads, indexes and searches a movie dataset with IndxSearchLib
- [indx-console-pokedex](https://github.com/indxSearch/indx-console-pokedex): C# console app showing JSON mode, filters, boosts and sorting
- [GitHub organisation](https://github.com/indxsearch): All public repositories

## Optional

- [Licenses](https://license.indx.co): Get and manage Indx license keys
- [Website](https://indx.co): Product overview and live search demo
