Site icon Towards AI

Next-Gen Search powered by Jina

Author(s): Shubham Saboo

Technology

Since the inception of online search, the world has changed dramatically, but the “curiosity” that fuels the business remains constant…

“The objective isn’t to make your links appear natural, the objective is that your links are natural” — Matt Cutts

What is Neural Semantic Search?

A neural search is an intelligent approach towards retrieving contextual and semantically relevant information. Instead of telling a machine a set of rules to understand what data is what, neural search does the same thing with a pre-trained neural network. This means developers don’t have to write every little rule, saving them time and headaches, and the system trains itself to get better as it goes along.

Conventional Search v/s Neural Search

Conventional search

Neural/Semantic Search

What is Jina?

Jina is a cloud-native neural search platform. It can be deployed in containers, clod, or on-prem servers. It offers anything-to-anything search ranging from Text-to-text, image-to-image, video-to-video, or any other data type that you can feed as input to the engine. Jina operates on its primitive data type known as a document. Documents are pieces of data in any dataset you want to search, and the input queries you use to find what you want.

Basically, they are the input and output data for the Jina search workflows. Jina core comprises of two main flows, which are the heart and soul of the semantic search engine:

Jina Components

Flow represents a high-level task, e.g. indexing, searching, training. It consists of a group of pods, orchestrating them to accomplish one task. A pod is a group of executors sharing the same properties, it allows parallel execution of multiple executors and adds context and control to the executors.

Executor represents an algorithmic unit in Jina. Algorithms such as encoding images into vectors, storing vectors on the disk, ranking results, can all be formulated as Executors. Executor provides useful interfaces, allowing AI developers and engineers to really focus on the algorithm. Some common executors are as follows:

Search Modalities

Jina is a data type-agnostic framework, that lets you work with any type of data and run cross-modal and multi-modal search Flows.

Support to different types of modalities unlocks a lot of powerful patterns and makes Jina fully flexible and agnostic to what can be searched.

All in one, data type agnostic search platform…

Jina in Action

For showcasing a live demo, I have designed a simple neural semantic search for textual data. The model is trained on the data taken from a random Wikipedia page. Jina takes the input document and follows through the internal Jina flows (Indexing followed by Querying) to come up with a search engine.

Frameworks/Tools Used:

Example: Here in the search box we try to search for “computer” and get the following results. It's interesting to see that there is no mention of the exact word “computer” anywhere in the indexed document, still the model figures out the sentence which are contextually or semantically related computer.

Jina doing the magic!

References

  1. https://github.com/jina-ai/jina
  2. https://docs.jina.ai
  3. https://www.thinkwithgoogle.com

If you would like to learn more or want to me write more on this subject, feel free to reach out.

My social links: LinkedIn| TwitterGithub

If you liked this post or found it helpful, please take a minute to press the clap button, it increases the post visibility for other medium users.


Next-Gen Search powered by Jina was originally published in Towards AI on Medium, where people are continuing the conversation by highlighting and responding to this story.

Published via Towards AI

Exit mobile version