NGSearch

Intro

NGSearch (aka New Generation Search) is an ecosystem of services and clients that allow Omniverse users to search for content on a nucleus server by asset metadata and tags. At its core this set of services is relying on a search backend engine, which can be either Elastic Search or OpenSearch (please refer to Search Backend Configuration for more information). NGSearch can be also augmented with DeepSearch service to provide with AI-driven functionality that allows finding:

  • closest assets for an input natural language (NLP) query

  • closets assets for a given input image

Registering and Access

Omniverse NGSearch service containers and docker-compose files are available to members of Omniverse Early Access Program.

To register, please proceed to EAP Registration on developer.nvidia.com and follow the steps on the page to join the NVIDIA Developer Program and then submit your application to the Omniverse Early Access Program.

You will receive a notification email for joining the NVIDIA Developer Program and once your application to the EAP is approved, you will receive a notification email with further instructions.

Design

NGSearch consists of several services, which are schematically shown on the diagram below.

../../../_images/ngsearch-diagram-design.png

When DeepSearch is available, the search service gets the possibility to convert textual input to embeddings using the embedding service from DeepSearch as illustrated on the diagram below

../../../_images/ngsearch-deepsearch-diagram-design.png

Note, here only part of Deepsearch functionality is illustrated. Please refer to DeepSearch Design for a more detailed description of all the individual components.

Components

As depicted by the diagrams above NGSearch stack consists of several services:

  1. Search service - the core of NGSearch stack. It provides with APIs to query search backend engine (Elastic Search or OpenSearch) and is used by Omniverse Kit and Navigator (version 3.1.0 or higher).

  2. Storage service - abstracts the search backend functionality and provides with APIs to write asset metadata that can be searched over by the search service.

  3. Crawler services:

    • Nucleus indexing service - listens to the updates coming from the nucleus server and interacts with the Storage service to register these updates in the search backend engine.

    • Tags Crawling service - listens to the tag updates coming from the tagging service and interacts with the Storage service to register these updates in the search backend engine.