Contents Menu Expand Light mode Dark mode Auto light/dark mode
Jina 3.4.2 documentation
Light Logo Dark Logo
Star

Get started

  • What is Neural Search?
  • What is Jina?
  • Comparing to Alternatives
  • Install
    • Jina on Windows
    • Troubleshooting
  • Create a New Project
  • Run Quick Demos
    • Fashion image search
    • Covid-19 chatbot
    • Multimodal search

User Guides

  • Architecture Overview
  • Executor
    • Executor API
    • Executors inside a Flow
    • Executor File Structure
    • Share Executors via Jina Hub
      • Hub Portal
      • Create Executor
      • Publish Executor
      • Use Hub Executors Locally
      • Use Hub Executor Remotely
      • Best Practices
    • Dockerize your Executor
    • Monitor Executor with Custom Metrics
  • Flow
    • Create a Flow
    • Configure Flow
    • Access Flow
    • Python Client
    • Monitor Flow
    • Remarks
  • Clean & Efficient Code

How-to

  • Deploy
    • How to run Jina with Docker Compose
    • How to deploy Jina on Kubernetes
    • How to deploy and use the monitoring with Jina
  • Executor
    • How to use async coroutines in Executors
    • How to scale out your Executor
    • How to run Executors on GPU
    • How to use external Executors
    • How to build switches in a Flow
    • How to debug an Executor

Developer Reference

  • Migration to Jina 3
  • Python API
    • jina package
      • jina.clients package
        • jina.clients.base package
          • jina.clients.base.grpc module
          • jina.clients.base.helper module
          • jina.clients.base.http module
          • jina.clients.base.websocket module
        • jina.clients.request package
          • jina.clients.request.asyncio module
          • jina.clients.request.helper module
        • jina.clients.grpc module
        • jina.clients.helper module
        • jina.clients.http module
        • jina.clients.mixin module
        • jina.clients.websocket module
      • jina.helloworld package
        • jina.helloworld.chatbot package
          • jina.helloworld.chatbot.app module
          • jina.helloworld.chatbot.my_executors module
        • jina.helloworld.fashion package
          • jina.helloworld.fashion.app module
          • jina.helloworld.fashion.helper module
          • jina.helloworld.fashion.my_executors module
        • jina.helloworld.multimodal package
          • jina.helloworld.multimodal.app module
          • jina.helloworld.multimodal.my_executors module
        • jina.helloworld.fork module
      • jina.hubble package
        • jina.hubble.helper module
        • jina.hubble.hubapi module
        • jina.hubble.hubio module
        • jina.hubble.requirements module
      • jina.jaml package
        • jina.jaml.parsers package
          • jina.jaml.parsers.default package
            • jina.jaml.parsers.default.v1 module
          • jina.jaml.parsers.executor package
            • jina.jaml.parsers.executor.legacy module
          • jina.jaml.parsers.flow package
            • jina.jaml.parsers.flow.v1 module
          • jina.jaml.parsers.base module
        • jina.jaml.helper module
      • jina.logging package
        • jina.logging.formatter module
        • jina.logging.logger module
        • jina.logging.predefined module
        • jina.logging.profile module
      • jina.orchestrate package
        • jina.orchestrate.deployments package
          • jina.orchestrate.deployments.config package
            • jina.orchestrate.deployments.config.k8slib package
              • jina.orchestrate.deployments.config.k8slib.kubernetes_deployment module
              • jina.orchestrate.deployments.config.k8slib.kubernetes_tools module
            • jina.orchestrate.deployments.config.docker_compose module
            • jina.orchestrate.deployments.config.helper module
            • jina.orchestrate.deployments.config.k8s module
        • jina.orchestrate.flow package
          • jina.orchestrate.flow.asyncio module
          • jina.orchestrate.flow.base module
          • jina.orchestrate.flow.builder module
        • jina.orchestrate.pods package
          • jina.orchestrate.pods.container module
          • jina.orchestrate.pods.container_helper module
          • jina.orchestrate.pods.factory module
          • jina.orchestrate.pods.helper module
        • jina.orchestrate.helper module
      • jina.parsers package
        • jina.parsers.hubble package
          • jina.parsers.hubble.new module
          • jina.parsers.hubble.pull module
          • jina.parsers.hubble.push module
        • jina.parsers.orchestrate package
          • jina.parsers.orchestrate.runtimes package
            • jina.parsers.orchestrate.runtimes.container module
            • jina.parsers.orchestrate.runtimes.distributed module
            • jina.parsers.orchestrate.runtimes.head module
            • jina.parsers.orchestrate.runtimes.remote module
            • jina.parsers.orchestrate.runtimes.worker module
          • jina.parsers.orchestrate.base module
          • jina.parsers.orchestrate.deployment module
          • jina.parsers.orchestrate.pod module
        • jina.parsers.base module
        • jina.parsers.client module
        • jina.parsers.create module
        • jina.parsers.deprecated module
        • jina.parsers.export_api module
        • jina.parsers.flow module
        • jina.parsers.helloworld module
        • jina.parsers.helper module
        • jina.parsers.ping module
      • jina.proto package
        • jina.proto.jina_pb2 module
        • jina.proto.jina_pb2_grpc module
        • jina.proto.serializer module
      • jina.schemas package
        • jina.schemas.deployment module
        • jina.schemas.executor module
        • jina.schemas.flow module
        • jina.schemas.helper module
        • jina.schemas.meta module
      • jina.serve package
        • jina.serve.executors package
          • jina.serve.executors.decorators module
          • jina.serve.executors.metas module
        • jina.serve.runtimes package
          • jina.serve.runtimes.gateway package
            • jina.serve.runtimes.gateway.graph package
              • jina.serve.runtimes.gateway.graph.topology_graph module
            • jina.serve.runtimes.gateway.grpc package
            • jina.serve.runtimes.gateway.http package
              • jina.serve.runtimes.gateway.http.app module
              • jina.serve.runtimes.gateway.http.models module
            • jina.serve.runtimes.gateway.websocket package
              • jina.serve.runtimes.gateway.websocket.app module
            • jina.serve.runtimes.gateway.request_handling module
          • jina.serve.runtimes.head package
          • jina.serve.runtimes.request_handlers package
            • jina.serve.runtimes.request_handlers.data_request_handler module
          • jina.serve.runtimes.worker package
          • jina.serve.runtimes.asyncio module
          • jina.serve.runtimes.base module
          • jina.serve.runtimes.monitoring module
        • jina.serve.stream package
          • jina.serve.stream.helper module
        • jina.serve.networking module
      • jina.types package
        • jina.types.request package
          • jina.types.request.control module
          • jina.types.request.data module
        • jina.types.mixin module
      • jina.checker module
      • jina.enums module
      • jina.excepts module
      • jina.helper module
      • jina.importer module
    • cli package
      • cli.api module
      • cli.autocomplete module
      • cli.export module
      • cli.known_plugins module
      • cli.lookup module
  • Command-Line Interface
  • Protocol Documentation
  • Jina 2 Documentation

Ecosystem

  • Jina
  • Jina Hub
  • Finetuner
  • DocArray
  • CLIP-as-service
  • JCloud
  • NOW

What is Neural Search?¶

The core idea of neural search is to leverage state-of-the-art deep neural networks to build every component of a search system. In short, neural search is deep neural network-powered information retrieval. In academia, it’s often called neural information retrieval, but we think the phrase is too wordy so we coined it as neural search back in 2019.

What can it do?¶

Thanks to recent advances in deep neural networks, a neural search system can go way beyond simple text search. It enables advanced intelligence on all kinds of unstructured data, such as images, audio, video, PDF, 3D mesh, you name it.

For example, retrieving animation according to some beats; finding the best-fit memes according to some jokes; scanning a table with your iPhone’s LiDAR camera and finding similar furniture at IKEA. Neural search systems enable what traditional search can’t: multi/cross-modal data retrieval.

Think outside the (search) box¶

Many neural search-powered applications do not have a search box:

  • A question-answering chatbot can be powered by neural search: by first indexing all hard-coded QA pairs and then semantically mapping user dialog to those pairs.

  • A smart speaker can be powered by neural search: by applying STT (speech-to-text) and semantically mapping text to internal commands.

  • A recommendation system can be powered by neural search: by embedding user-item information into vectors and finding top-K nearest neighbours of a user/item.

Neural search creates a new way to comprehend the world. It is creating new doors that lead to new businesses.

Seize tomorrow today¶

Has neural search been solved and is it widely applicable? Not quite yet - but we’re working on it. Compared to traditional symbolic search, building a neural search system can seem daunting for the following reasons:

  • takes much more time to develop due to the complexity of AI and system engineering;

  • suffers from a fragmented tech stack and glue code;

  • is computationally demanding and can be very inefficient;

  • is hard to sustain when facing the accelerated innovation in deep learning.

That’s why we built Jina, an easier way to build scalable and sustainable neural search systems on the cloud.

Next
What is Jina?
Previous
Home
Copyright © Jina AI Limited. All rights reserved. Last updated on May 13, 2022.
Contents
  • What is Neural Search?
    • What can it do?
    • Think outside the (search) box
    • Seize tomorrow today
You can ask questions about our docs. Try:
Does Jina support Kubernetes?
What are the basic concepts in Jina?
How to share my Executor?