This project is not covered by Drupal’s security advisory policy.

The Taxonomy Depth module enables dramatically more efficient taxonomy "depth" searches than the core taxonomy module.

Drupal vocabularies can be hierarchical; terms can have parents. A normal taxonomy search is "retrieve all nodes with term T." A depth 1 taxonomy search is "retrieve all nodes with term T or any of term T's children." A depth N search is "retrieve all nodes with term T or any of its descendents up to N levels deep."

When Taxonomy module performs a depth D search for a term T, it retrieves every term in T's vocabulary, scans the results in PHP to compute the descendant graph dynamically, extracts the descendants of T of depth D or less, and executes "SELECT FROM node INNER JOIN term_node WHERE tid IN (all terms in the descendant list)".

When Views module performs a depth D search for a term T, it joins to the term_hierarchy and term_data tables once for *every* depth level, plus the initial join to term_node, for a total of 2*D+1 joins. If you define a page view with three separate Term ID arguments, each of which does a depth 3 search, you end up with 21 joins in addition to whatever else the view requires

When Taxonomy Depth module performs a depth D search for a term T, it joins to the term_node and term_tables once each. The page view described above with three depth three searches then only requires 6 joins instead of 21.

This module is pre-release.

SPONSOR

Seven Days Vermont, http://www.7dvt.com

Project information

Releases