Users often search with specific questions in mind. When we present a search result that directly answers their question, it speeds up their search significantly. Refining our dataset is an ongoing process. We continually review the site searches, regularly adding to and updating the quick answer topics and content.
How it works technically
We wanted to combine off-the-shelf, managed cloud services so it would be cheap and run without maintenance. We did not want the overhead of managing a bunch of cloud infrastructure or custom code or forcing our editorial team to duplicate content management work in another CMS.
We achieved this in a way that any organization can duplicate. The cost to run this system is low because it falls under the cloud provider’s free tier even when our site gets a lot of traffic.
We use Azure cognitive search quick answers to provide all the backend features: the content database, the query evaluation logic, and the endpoints for our frontend to call
We create the content by running a scraper against our site regularly so the content is updated based directly on our publicly published info. The only custom code is some logic to pull Q&A pairs from our frontend code. The scraper runs on Azure FAAS.
We feed user interaction data into our analytics tools so we can quickly see the most-used quick answers, the searches, searches without associated quick answers, and the answers users saw but ignored. We use this data to refine our site content. These changes update the quick answers dataset.
Before we built our own tool, we reviewed related solutions:
- Open source work by governments like the Vermont Department of Health, which uses some Azure tools to provide answers to people with a different UI
- Other teams like our friends in New Jersey, who implemented an interesting solution that inspired us. They used a hosted SAAS service called yext to provide similar features. This did not have an API available that we could integrate when we were looking for this feature. Now it has comparable features to the Azure cognitive search we are using.
All the quick answers are generated by live site content. Tags to get the scraper to pay attention to or ignore specific pieces of content are detailed in the scraper readme.