Faceted Search is a powerful search feature that allows users to explore content library by applying multiple filters to their search results. Though, Lithium has a great out-of-the box search feature with multiple filters for the advanced search but as we were building a multi-platform online community where all the search results had to be collected and rendered on one platform, we had to develop a custom solution.
We were working with one instance of Lithium and two instances of Zendesk. The requirement was to get the search content from all the 3 instances and render the results in one place, i.e. in Lithium. SOLR, was used as the search platform to index all the data.
Features Required in the Community
- Auto Suggest
- Facets
- Cross Platform Search
Technologies Used
- SOLR
- AJAX
- Javascript
- JQuery
- HTML
- Freemarker
- PHP
First Step
The first step to setup the search was to index all the data from Lithium platform and the two Zendesk platforms to the SOLR server. To achieve this, we used the respective REST APIs exposed by Lithium and Zendesk.
Architecture & Workflow
SOLR offers powerful full-text search, highlighted search, faceted search, near real-time indexing, dynamic clustering, database integration, rich document (e.g. Word, PDF) etc. Following is the workflow for the integration:[/vc_column_text][vc_column_text]
The workflow was simple. Store the data from Lithium and Zendesk in the SOLR index, and then displays the combined search results from all 3 locations in one location when a search is performed. Also, we needed to provide the facets for the user to narrow down the search to specific areas. The results had to be up to date, with the most relevant results coming on the top. The priority was to be given to the one of the two Zendesk platforms over the Lithium community data.
Limitations
Lithium, being a SaaS platform does not allow hosting of the external applications on their server, so the SOLR was hosted externally, which brought in the cross origin issue. Lithium only allows server side coding in Freemarker, exposing their REST APIs and the client side coding in JavaScript, HTML, so we developed the search in JavaScript.
Development
All the development was to be done in Lithium, for rendering and filtering of the search. Lithium provides Endpoint feature to communicate with the other domains via http.client. It also provides methods to make server-to-server REST calls and allows for deeper integrations with third-party REST APIs. This object alleviates JavaScript cross-domain and browser compatibility issues.
Final Product
After 3 Weeks of development, we got the search up and running on the website with the relevant search results coming from all the platforms and the facets for the users to narrow down, refine and sort their search. The search is currently live on http://community.optimizely.com
About Grazitti’s Community Services
Grazitti’s certified developers are well versed with community development platforms like Lithium, Drupal, Jive, Salesforce and more. Moreover, Companies like Marketo, Optimizely, Jasper, Lancope and more have worked with us to translate their online community requirements into thriving hubs.
To know more about our online community services, write to [email protected]