tacnode
Back to Demos·

Omni Search

We demonstrate Tacnode's omni search capabilities. Watch as we explore how Tacnode excels in handling various data types and query scenarios with a single query engine. We'll showcase a practical example by searching for listings that mention "treehouse," are available from September 1st to 30th, and feature amenities like a TV with Netflix. You'll see how Tacnode efficiently combines full-text search, range queries, and semi-structured data handling to deliver accurate results.

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.