Requirements:
- CKAN 2.5+
- ckanext-hierarchy (companion extension for organization hierarchies)
- Python 2.7+
Prerequisite - Install ckanext-hierarchy:
This extension requires ckanext-hierarchy to be installed first:
Install ckanext-hierarchy:
pip install ckanext-hierarchy
Or from source:
git clone https://github.com/ckan/ckanext-hierarchy.git
cd ckanext-hierarchy
python setup.py develop
Add hierarchy plugin to ckan.plugins:
ckan.plugins = … hierarchy_display hierarchy_form …
Initialize hierarchy database tables:
paster –plugin=ckanext-hierarchy hierarchy initdb –config=production.ini
Installation:
Activate CKAN virtualenv:
. /usr/lib/ckan/default/bin/activate
Install extension:
pip install ckanext-hierarchy_search
Or from source:
git clone https://github.com/DataShades/ckanext-hierarchy_search.git
cd ckanext-hierarchy_search
python setup.py develop
Install dependencies:
pip install -r dev-requirements.txt
Add plugin to ckan.plugins in production.ini:
ckan.plugins = … hierarchy_display hierarchy_form hierarchy_search …
Note: hierarchy_search must come after hierarchy_display and hierarchy_form
Restart CKAN:
sudo service apache2 reload
Configuration:
Optional configuration settings in production.ini:
Minimum hours to wait before re-checking a resource (example setting)
(optional, default: 24)
ckanext.hierarchy_search.some_setting = some_default_value
Note: Specific configuration options depend on implementation.
Refer to extension documentation for available settings.
Usage:
Hierarchy-Aware Search:
Once installed, the extension enhances search with hierarchy features:
Organization Tree Filtering:
- Search results can be filtered by organization hierarchy
- Selecting a parent organization shows datasets from child organizations
- Hierarchical breadcrumb navigation in search
Faceted Search by Hierarchy:
- Organization facets display hierarchical structure
- Expand/collapse organization tree in facets
- Visual indication of parent-child relationships
Dataset Discovery:
- Find datasets within organizational branches
- Search across all children of a parent organization
- Filter by specific levels in hierarchy
Search Features:
- Hierarchical organization facets in search sidebar
- Parent organization search includes child organization datasets
- Organization tree navigation in search interface
- Breadcrumb trail showing organizational hierarchy
- Filtering by organization level/depth
Integration with ckanext-hierarchy:
Works seamlessly with hierarchy extension features:
- Organization tree visualization
- Parent-child organization relationships
- Hierarchical organization management
- Tree-based organization browsing
Typical Use Cases:
Government Data Portals:
- Federal → State → Local hierarchy
- Search datasets within specific governmental levels
- Navigate organizational structure
Corporate Data Catalogs:
- Company → Division → Department hierarchy
- Find data within specific business units
- Cross-departmental data discovery
Research Institutions:
- University → Faculty → Department hierarchy
- Search research data by organizational unit
- Inter-departmental collaboration
Development:
Clone repository:
git clone https://github.com/DataShades/ckanext-hierarchy_search.git
cd ckanext-hierarchy_search
Install for development:
python setup.py develop
pip install -r dev-requirements.txt
Create test.ini from template
Run tests:
nosetests –nologcapture –with-pylons=test.ini
Run with coverage:
pip install coverage
nosetests –nologcapture –with-pylons=test.ini –with-coverage –cover-package=ckanext.hierarchy_search –cover-inclusive –cover-erase –cover-tests
Troubleshooting:
Hierarchy features not appearing:
- Verify ckanext-hierarchy is installed and enabled
- Check plugin order: hierarchy plugins before hierarchy_search
- Ensure hierarchy database tables initialized
- Clear template cache
- Restart CKAN
Search not filtering by hierarchy:
- Verify organizations have parent-child relationships set
- Check Solr index includes organization hierarchy
- Re-index search: paster search-index rebuild
- Check logs for errors
Organization tree not displaying:
- Verify ckanext-hierarchy templates are loading
- Check JavaScript is enabled in browser
- Inspect browser console for errors
- Verify organization hierarchy structure exists
Performance issues:
- Index organization hierarchies in Solr
- Cache organization tree structure
- Optimize database queries for large hierarchies
- Consider pagination for deep hierarchies
Related Configuration:
From ckanext-hierarchy (prerequisite):
Enable hierarchy features
ckan.plugins = … hierarchy_display hierarchy_form …
Organization hierarchy depth limit (optional)
ckanext.hierarchy.max_depth = 10
Show dataset counts in tree (optional)
ckanext.hierarchy.show_dataset_count = true
Database Requirements:
Requires ckanext-hierarchy database tables:
- organization_hierarchy: stores parent-child relationships
- hierarchy_tree: cached tree structure
Ensure hierarchy database is initialized:
paster –plugin=ckanext-hierarchy hierarchy initdb –config=production.ini
PyPI:
Package available at:
https://pypi.python.org/pypi/ckanext-hierarchy_search
Install via pip:
pip install ckanext-hierarchy_search
Development Status: Beta (4)
License: AGPL v3.0 or later
Keywords: CKAN, hierarchy, search, organization, tree, navigation
Developer: Link Digital (Sergey Motornyuk)
Related Extensions:
- ckanext-hierarchy: Organization hierarchy (required)
- ckanext-scheming: Schema customization
- ckanext-spatial: Spatial search
- ckanext-facets: Advanced faceting
CI/CD:
- Travis CI: https://travis-ci.org/DataShades/ckanext-hierarchy_search
- Coveralls: https://coveralls.io/r/DataShades/ckanext-hierarchy_search