Book Image

Neural Search - From Prototype to Production with Jina

By : Jina AI, Bo Wang, Cristian Mitroi, Feng Wang, Shubham Saboo, Susana Guzmán
Book Image

Neural Search - From Prototype to Production with Jina

By: Jina AI, Bo Wang, Cristian Mitroi, Feng Wang, Shubham Saboo, Susana Guzmán

Overview of this book

Search is a big and ever-growing part of the tech ecosystem. Traditional search, however, has limitations that are hard to overcome because of the way it is designed. Neural search is a novel approach that uses the power of machine learning to retrieve information using vector embeddings as first-class citizens, opening up new possibilities of improving the results obtained through traditional search. Although neural search is a powerful tool, it is new and finetuning it can be tedious as it requires you to understand the several components on which it relies. Jina fills this gap by providing an infrastructure that reduces the time and complexity involved in creating deep learning–powered search engines. This book will enable you to learn the fundamentals of neural networks for neural search, its strengths and weaknesses, as well as how to use Jina to build a search engine. With the help of step-by-step explanations, practical examples, and self-assessment questions, you'll become well-versed with the basics of neural search and core Jina concepts, and learn to apply this knowledge to build your own search engine. By the end of this deep learning book, you'll be able to make the most of Jina's neural search design patterns to build an end-to-end search solution for any modality.
Table of Contents (13 chapters)
1
Part 1: Introduction to Neural Search Fundamentals
5
Part 2: Introduction to Jina Fundamentals
8
Part 3: How to Use Jina for Neural Search

Concurrent querying and indexing data

In this section, we will present the methodology for how to continuously serve your client’s requests while still being able to update, delete, or add new data to your database. This is a common requirement in the industry, but it is not trivial to achieve. The challenges here are around maintaining the vector index actualized with the most recent data, while also being able to update that data in an atomic manner, but also doing all these operations in a scalable, containerized environment. With the Jina framework, all of these challenges can be easily met and overcome.

By default, in a Jina Flow, you cannot both index data and search at the same time. This is due to the nature of the network protocol. In essence, each Executor is a single-threaded application. You can use sharding to extend the number of copies of an Executor that form an Executor group. However, this is only safe for purely parallel operations, such as encoding data...