## Direct Retrieve

`CompositeRetrievalResult Retrievers.Search(RetrieverSearchParamsparameters, CancellationTokencancellationToken = default)`

**post** `/api/v1/retrievers/retrieve`

Retrieve data using specified pipelines without creating a persistent retriever.

### Parameters

- `RetrieverSearchParams parameters`

  - `required string query`

    Body param: The query to retrieve against.

  - `string? organizationID`

    Query param

  - `string? projectID`

    Query param

  - `CompositeRetrievalMode mode`

    Body param: The mode of composite retrieval.

  - `IReadOnlyList<RetrieverPipeline> pipelines`

    Body param: The pipelines to use for retrieval.

    - `required string? Description`

      A description of the retriever tool.

    - `required string? Name`

      A name for the retriever tool. Will default to the pipeline name if not provided.

    - `required string PipelineID`

      The ID of the pipeline this tool uses.

    - `PresetRetrievalParams PresetRetrievalParameters`

      Parameters for retrieval configuration.

      - `Double? Alpha`

        Alpha value for hybrid retrieval to determine the weights between dense and sparse retrieval. 0 is sparse retrieval and 1 is dense retrieval.

      - `string ClassName`

      - `Double? DenseSimilarityCutoff`

        Minimum similarity score wrt query for retrieval

      - `Long? DenseSimilarityTopK`

        Number of nodes for dense retrieval.

      - `Boolean? EnableReranking`

        Enable reranking for retrieval

      - `Long? FilesTopK`

        Number of files to retrieve (only for retrieval mode files_via_metadata and files_via_content).

      - `Long? RerankTopN`

        Number of reranked nodes for returning.

      - `RetrievalMode RetrievalMode`

        The retrieval mode for the query.

        - `"auto_routed"AutoRouted`

        - `"chunks"Chunks`

        - `"files_via_content"FilesViaContent`

        - `"files_via_metadata"FilesViaMetadata`

      - `Boolean RetrieveImageNodes`

        Whether to retrieve image nodes.

      - `Boolean RetrievePageFigureNodes`

        Whether to retrieve page figure nodes.

      - `Boolean RetrievePageScreenshotNodes`

        Whether to retrieve page screenshot nodes.

      - `MetadataFilters? SearchFilters`

        Metadata filters for vector stores.

        - `required IReadOnlyList<Filter> Filters`

          - `class MetadataFilter:`

            Comprehensive metadata filter for vector stores to support more operators.

            Value uses Strict types, as int, float and str are compatible types and were all
            converted to string before.

            See: https://docs.pydantic.dev/latest/usage/types/#strict-types

            - `required string Key`

            - `required Value? Value`

              - `Double`

              - `string`

              - `IReadOnlyList<string>`

              - `IReadOnlyList<Double>`

              - `IReadOnlyList<Long>`

            - `Operator Operator`

              Vector store filter operator.

              - `"!="`

              - `"<"`

              - `"<="`

              - `"=="`

              - `">"`

              - `">="`

              - `"all"All`

              - `"any"Any`

              - `"contains"Contains`

              - `"in"In`

              - `"is_empty"IsEmpty`

              - `"nin"Nin`

              - `"text_match"TextMatch`

              - `"text_match_insensitive"TextMatchInsensitive`

          - `class MetadataFilters:`

            Metadata filters for vector stores.

        - `Condition? Condition`

          Vector store filter conditions to combine different filters.

          - `"and"And`

          - `"not"Not`

          - `"or"Or`

      - `IReadOnlyDictionary<string, SearchFiltersInferenceSchema?>? SearchFiltersInferenceSchema`

        JSON Schema that will be used to infer search_filters. Omit or leave as null to skip inference.

        - `IReadOnlyDictionary<string, JsonElement>`

        - `IReadOnlyList<JsonElement>`

        - `string`

        - `Double`

        - `Boolean`

      - `Long? SparseSimilarityTopK`

        Number of nodes for sparse retrieval.

  - `ReRankConfig rerankConfig`

    Body param: The rerank configuration for composite retrieval.

  - `Long? rerankTopN`

    Body param: (use rerank_config.top_n instead) The number of nodes to retrieve after reranking over retrieved nodes from all retrieval tools.

### Returns

- `class CompositeRetrievalResult:`

  - `IReadOnlyList<PageScreenshotNodeWithScore> ImageNodes`

    The image nodes retrieved by the pipeline for the given query. Deprecated - will soon be replaced with 'page_screenshot_nodes'.

    - `required Node Node`

      - `required string FileID`

        The ID of the file that the page screenshot was taken from

      - `required Long ImageSize`

        The size of the image in bytes

      - `required Long PageIndex`

        The index of the page for which the screenshot is taken (0-indexed)

      - `IReadOnlyDictionary<string, JsonElement>? Metadata`

        Metadata for the screenshot

    - `required Double Score`

      The score of the screenshot node

    - `string ClassName`

  - `IReadOnlyList<Node> Nodes`

    The retrieved nodes from the composite retrieval.

    - `required Node Node`

      - `required string ID`

        The ID of the retrieved node.

      - `required Long? EndCharIdx`

        The end character index of the retrieved node in the document

      - `required string PipelineID`

        The ID of the pipeline this node was retrieved from.

      - `required string RetrieverID`

        The ID of the retriever this node was retrieved from.

      - `required string RetrieverPipelineName`

        The name of the retrieval pipeline this node was retrieved from.

      - `required Long? StartCharIdx`

        The start character index of the retrieved node in the document

      - `required string Text`

        The text of the retrieved node.

      - `IReadOnlyDictionary<string, JsonElement> Metadata`

        Metadata associated with the retrieved node.

    - `string ClassName`

    - `Double? Score`

  - `IReadOnlyList<PageFigureNodeWithScore> PageFigureNodes`

    The page figure nodes retrieved by the pipeline for the given query.

    - `required Node Node`

      - `required Double Confidence`

        The confidence of the figure

      - `required string FigureName`

        The name of the figure

      - `required Long FigureSize`

        The size of the figure in bytes

      - `required string FileID`

        The ID of the file that the figure was taken from

      - `required Long PageIndex`

        The index of the page for which the figure is taken (0-indexed)

      - `Boolean IsLikelyNoise`

        Whether the figure is likely to be noise

      - `IReadOnlyDictionary<string, JsonElement>? Metadata`

        Metadata for the figure

    - `required Double Score`

      The score of the figure node

    - `string ClassName`

### Example

```csharp
RetrieverSearchParams parameters = new() { Query = "x" };

var compositeRetrievalResult = await client.Retrievers.Search(parameters);

Console.WriteLine(compositeRetrievalResult);
```

#### Response

```json
{
  "image_nodes": [
    {
      "node": {
        "file_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
        "image_size": 0,
        "page_index": 0,
        "metadata": {
          "foo": "bar"
        }
      },
      "score": 0,
      "class_name": "class_name"
    }
  ],
  "nodes": [
    {
      "node": {
        "id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
        "end_char_idx": 0,
        "pipeline_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
        "retriever_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
        "retriever_pipeline_name": "retriever_pipeline_name",
        "start_char_idx": 0,
        "text": "text",
        "metadata": {
          "foo": "bar"
        }
      },
      "class_name": "class_name",
      "score": 0
    }
  ],
  "page_figure_nodes": [
    {
      "node": {
        "confidence": 0,
        "figure_name": "figure_name",
        "figure_size": 0,
        "file_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
        "page_index": 0,
        "is_likely_noise": true,
        "metadata": {
          "foo": "bar"
        }
      },
      "score": 0,
      "class_name": "class_name"
    }
  ]
}
```
