Skip to content

Browsing with your own search index


  • Our service works on top of an existing search infrastructure. We currently support Apache Solr (with the Query Elevation Component enabled) and Elasticsearch. In case you are already using either of these two, we can connect to your own Apache Solr/Elasticsearch. This means that your data remains entirely yours, and that you don't need to change your web app to parse the search result format. To access your search infrastructure (Apache Solr or Elasticsearch), our REST app needs to be able to connect to your search engine. During the setup of the system we propose a way that suits your settings and requirements. In case there is no existing search infrastructure available, please refer to our Cloud Indexing documentation.

  • We assume that a web app is present on the client side. This app communicates with our REST app and serves your website. Other than this, there are no prerequisites for using 904Labs A.I. for Search service.


904Labs A.I. for Seach works with multiple consecutive calls from your web app to our REST app. Our REST app, in turn, makes several calls to the existing search engine (Apache Solr or Elasticsearch). In a common setup, the workflow consists of seven steps.


Step Description
Step 1 A visitor explores your website and selects a category (page) to look at.
Step 2 Your web app sends the category to our browse endpoint. See POST /browse for the request details.
Step 3 Our REST app communicates with your Apache Solr/Elasticsearch to construct an optimized sorting of items for the given category.
Step 4 Our REST app returns a modified sls query to your web app. See POST /browse for the response details.
Step 5 Your web app fires the sls query to Elasticsearch or to an Apache Solr core endpoint that has the Query Elevation Component enabled (e.g., /elevate). It receives a ranked list of items in the same format as in the current situation.
Step 6 Your web app formats the ranked list and shows the category page to the visitor. When the visitor interacts with the category page (e.g., clicks, adds-to-basket), the web app records these feedback signals.
Step 7 Your web app sends the feedback signals to our feedback endpoint. See POST /feedback for the request details.

904Labs provides two API endpoints to facilitate the workflow described above:

  • POST /browse for optimizing the item listing in a category.

  • POST /feedback for sending visitors' feedback signals (e.g., clicks, add-to-basket).


  • There is no need for caching of results. 904Labs A.I. for Search is using sophisticated caching strategies for serving requests as fast as possible. We take away processing load from your search infrastructure and move it to our own servers. This also speeds up response times by minimizing network traffic between your and our servers. Since caching is already in place, we strongly recommend not to use any caching on 904Labs' results at your end. First, it is very difficult to synchronize independent caches. Second, it leads to loosing important feedback from which 904Labs A.I. for Search learns.

More information

For more information and or questions, please send an email to