> ## Documentation Index
> Fetch the complete documentation index at: https://docs.ndi.nace.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Search methods

> Choose hybrid, fact, deep, filtered, file QA, or the knowledge graph

NDI has several retrieval surfaces. They are not aliases.

| Method           | SDK                                  | Returns                        | Use when                                          |
| ---------------- | ------------------------------------ | ------------------------------ | ------------------------------------------------- |
| Hybrid search    | `client.tools.hybrid_search`         | Ranked snippets + locators     | You want passages from the index                  |
| Fact search      | `client.search.fact`                 | Answer + evidence (one pass)   | A single lookup over the corpus                   |
| Deep search      | `client.search.deep`                 | Answer + evidence (agent loop) | Multi-step questions, follow-ups via `session_id` |
| Filtered search  | `client.search.filtered` (Python)    | Catalog rows + cursor          | Filter / rank / count from ingestion metadata     |
| QA file          | `client.tools.qa_file`               | Answer + citations             | One uploaded document (not a spreadsheet)         |
| Query tables     | `client.tools.query_tables`          | Answer over workbooks          | One question across spreadsheets                  |
| Run SQL          | `client.tools.run_sql` (Python)      | SQL result                     | You already know the query                        |
| KG search / walk | `client.tools.kg_search` / `kg_walk` | Facts and paths                | Relationship questions after a graph build        |

Hybrid search is a tool: it is inline and does not create a job. Fact, deep, and filtered search return jobs.

Deep search is not chat. Each turn is one question; chain follow-ups with that turn's `session_id`. Sharing a session across a suite of unrelated questions is unsupported.

Grounding is a separate call: `client.documents.ground` pins a quote to a location. Search evidence names the file; Ground locates the span.

See the [search guide](/guides/search) for runnable examples.
