This Post discusses Jina, a neural search framework from Jina-AI, in layman terms.
We search the internet for a variety of needs, from finding the lyrics of your favourite song to ordering food online. We use search engines like google to search and get the desired data based on a query. Now what is a query ?
It is a precise request for information retrieval with database and information systems.
In general, a query is a form of questioning, in a line of inquiry.
Now, after we give a query to a search engine, it begins it's work and responds to our query with the results matching. For example, imagine you search for the new film releasing this weekend, you google it like,
New movie this week release or
new film near me. These two phrases we use for searching about the to be released film is the query we give to search engine. Now search engine uses this and retrieve and present us information/data related to the query we gave. This is how the process works.
Jina, on the other hand, is a neural search framework, meaning it uses a deep learning based Neural Search approach to provide out of the box features. One clear advantage of Jina is that it enables users to query with unstructured data, like images, audio, video, and maps. Sounds cool right? If it didn't awe you, here's another plus, it is fully customizable and Open-Source. This means one can easily tailor their search needs with Jina and provide a highly accurate search results for unstructured query.
Ordered data is known as structured data, for example CSV and XML files. Here, data is categorized and ordered, in the form of rows and columns. Whereas in Unstructured data, such orderliness and categorization is difficult and not found.
Now here Jina wins as it enables users to query with unstructured data like images, videos and more. This is possible because of the fundamental development of Jina is strongly rooted on Neural Search and deep learning. This makes Jina trainable for different use-cases.
Chill, This is not going to be a fight between two ways. Both has their own pros and cons. Like, Neural Search has low query matching capabilities compared to Traditional Search. But Neural Search wins in scalability and customizable factor.
We just install Jina using
pip install jina in a venv.
Jina works on
flows, a fundamental component, which manages things to get your application running, each flow takes care of real world task. A flow contains
executor, executors are like elements which do data processing for our application.
We add these executors called MyTransformer and MyIndexer for data encoding and indexing purpose respectively
We can visualize this flow using plot function
this generates an SVG like below,
We now add a name to the executors like below, so that the generated SVG is readable,
This now generates a more readable SVG like below,
We then add executors needed for our purpose and begin our work. More detailed explanations are given in Jina-Docs.
Jina adores Open-Source as it's crown and works on community level to get features onboard. Any type of contributions are welcomed, and they have a diverse and inclusive community too. Head over to the GitHub page and start working on issues. If you want to spread a word about Jina, Awesome, do it soon!
Any type of contribution is welcomed.
Correct me if I am wrong, forgive me if my English is bad.