We've just published a new version of SobiPro Search Plugin (v1.5). However this is a special featured version.
SobiPro is a powerful directory extension for the Joomla! Content Management System that is designed to easily create multiple directories or content types.
SobiPro has multiple directories, with dynamic field objects. Each directory is a tree data structure.
We've been developing SobiPro Search Plugin for a while. To fully support the model we've needed to review the SobiPro data structure. To remember the computer science theory about hierarchical data structures, you can check Storing Hierarchical Data in a Database.
Right now, SobiPro has a basic Tree where each node has its parent in the table record, an Adjacency List Model.
The problem to search for matching nodes: there's no way to check if a node belongs to the catalog/section (root node).
Of course, if you have only one catalog/section, there is no problem. But SobiPro is multi-catalog.
To solve the problem, we've revisited the data structure books (never forget to name our father Donal Knuth).
So, we've implemented a table to store a Modified Preorder Tree Traversal. In this table, all nodes are already sorted, and traversed to have an assigned path. In this way, we can easily check with a query if it belongs to a root object.
Also, please, don't forget in this version we also added the dynamic field search, to add the tables and fields according the record meta-definition.
With this two ideas implemented, we can fairly say this is a little big plugin.
PD: To who have reached the end of the post, you may have noticed that the problem can be easily solved adding the root node reference in the main object table! Let's see if the change is included in a future SobiPro version.