My server side faceted browser just got a bit better. In fact, it become 10 times better. But, let's try to explain this story step by step...
This week I will try to introduce faceted joins. Primary motivation is great Plants For A Future database which consists of more than one text file.
Use case is something like following:
I would like to know all plants which can have medical use, are edable and have perennial habitat (so I don't have to re-plant them every year).
And you can watch the video to see how easily this can be done:
But, this still doesn't make MojoFacets 10 times better than before. This is quite small dataset (still about 10 times bigger than Exhibit could handle), but I had new problem: 100Mb source file a bit less than 30000 items. To make it scale more I implemented pre-calculated filters and sorts. They serve same usage as indexes do in relational databases, but they are calculated on demand and stored in memory.
In this video, we saw:
- starting memory usage of ~13Mb
- 100Mb dataset with 29869 items
- filter by autor with 45644 taking ~10s
- use regex filter ic,
- godina_izdavanja is numeric facet
- jezik filter using cro slo ser regexps and toggle it
- show popup title on filters
- turn off filters to show under 4s load time
- at the end, we consumed ~260Mb of memory