INTRODUCTION
Welcome to our demonstration of Tacnode's Omni Search capabilities. We'll be using the Tacnode Playground for this demonstration.
You may be wondering, what even is Omni Search? Traditional databases typically have narrow specializations. For example, relational databases like PostgreSQL and MySQL perform well in transaction processing, while NoSQL databases like MongoDB perform well in processing semi-structured data. When it comes to full-text search, ElasticSearch has a significant advantage. While these products excel in their respective specializations, they're unable to perform well in all scenarios, all at once. However, with the concept of Omni Search, one query engine should be able to excel in every situation.
TACNODE PLAYGROUND
Next, we'll enter the Tacnode Playground to demonstrate Tacnode's Omni Search performance. First, let's click on "Advanced Search" and enter some keywords. Let's say, we want to find listings that mention a "treehouse." Then, let's specify that we want a listing that's available from September 1 to September 30th. As for the amenities field, let's say we want the property to feature a TV that has Netflix.
Now, we can click "Search."
So, what does this look like in the backend? First, we convert our keywords into a tsquery
through the function to_tsquery
and perform a keyword search on the keys
field. Next, we filter the results. In the calendar
table, we filter by the date range to find the IDs of available listings. It should be mentioned that the calendar
table has over 500 million records. After we filter out the result, we perform a JSON query on the "amenities" field. The key is TV
and our desired value is a streaming service, Netflix
.
At the end of all these queries, we've obtained our results.
So now, let's confirm the accuracy of our results. Let's click on one of these listings. We can see that the title contains the keyword "Treehouse" and we see that it does include a TV with Netflix.
With this demonstration, we've shown Tacnode's prowess in performing full-text search, executing range queries, and handling semi-structured data, all at once. Notice that we also use subqueries and JOIN operations.
And with that, we conclude this demonstration of Tacnode's Omni Search capabilities. Thank you for tuning in.