Skip to content

awesome-reactivesearch/app-store-search

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

79 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

App Store Search

This is an example repo that explains how ReactiveSearch pipelines can be used to build an app store search backend.

What are Pipelines?

Pipelines lets users define flows that are invoked based on paths. These flows can have custom stages (defined using JavaScript) or they can utilize pre built stages to override the default behaviour of a route.

In this example, we are utilizing pipelines to override the index endpoints to add an extra step that adds vector data based on a few fields and saves it to ElasticSearch.

Auto Deployments

The pipelines are automatically deployed from this repository by using the pipelines-action which uses GitHub Actions to auto deploy the pipelines and does a lot more. Read here.

Index Pipeline

As explained above, an indexing pipeline is defined that automatically adds vector data for the Name and Description fields and saves them as dense_vector in ElasticSearch. These vectors are calculated using the bert-as-service API.

Read more about this pipeline in the index directory

Search Pipeline

There are two search pipelines defined in this example.

  • aNN Search Pipeline
  • Text Search Pipeline

aNN Search Pipeline

This pipeline utilizes ElasticSearch's approximate kNN (k-Nearest Neighbor) to find the search results of the query passed.

Text Search Pipeline

This pipeline follows the good-ol-way of doing text searches using ElasticSearchs builtin functions like match.

Read more about these pipelines in the search directory

Frontend

The frontend of this app is built using ReactiveSearch components. These components are used with VueJS in this example.

Read more about the frontend in the frontend directory