Extension Hierarchy Search


Extension Basics

Title
Hierarchy Search
Name
ckanext-hierarchy_search
Type
Public extension
Description
Enhanced search functionality for hierarchical organization structures in CKAN
CKAN versions

~2.9, ~2.10, ~2.11

Show details
Download-Url (zip)
Download-Url commit date
2025-10-10
Url to repo
Category
Specialized Tools


Background Infos

Description (long)
Show details

Extension that enhances CKAN’s search capabilities for hierarchical organization structures. Works with ckanext-hierarchy to provide search filtering and navigation based on organization hierarchies. Allows users to search within specific branches of an organization tree, filter datasets by parent/child organization relationships, and navigate hierarchical organization structures efficiently. Integrates with CKAN’s existing search interface to provide hierarchy-aware filtering options. Useful for large CKAN instances with complex organizational structures where datasets need to be discovered within specific organizational contexts.

Version
0.0.1
Version release date
2025-10-10
Contact name
Sergey Motornyuk
Contakt email
Contact Url
(not set)


Installation Guide

Configuration hints

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:

  1. 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

  2. Add hierarchy plugin to ckan.plugins: ckan.plugins = … hierarchy_display hierarchy_form …

  3. Initialize hierarchy database tables: paster –plugin=ckanext-hierarchy hierarchy initdb –config=production.ini

Installation:

  1. Activate CKAN virtualenv: . /usr/lib/ckan/default/bin/activate

  2. 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

  3. Install dependencies: pip install -r dev-requirements.txt

  4. 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

  5. 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:

  1. 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
  2. Faceted Search by Hierarchy:

    • Organization facets display hierarchical structure
    • Expand/collapse organization tree in facets
    • Visual indication of parent-child relationships
  3. 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:

  1. Government Data Portals:

    • Federal → State → Local hierarchy
    • Search datasets within specific governmental levels
    • Navigate organizational structure
  2. Corporate Data Catalogs:

    • Company → Division → Department hierarchy
    • Find data within specific business units
    • Cross-departmental data discovery
  3. Research Institutions:

    • University → Faculty → Department hierarchy
    • Search research data by organizational unit
    • Inter-departmental collaboration

Development:

  1. Clone repository: git clone https://github.com/DataShades/ckanext-hierarchy_search.git cd ckanext-hierarchy_search

  2. Install for development: python setup.py develop pip install -r dev-requirements.txt

  3. Create test.ini from template

  4. Run tests: nosetests –nologcapture –with-pylons=test.ini

  5. 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:

  1. 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
  2. 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
  3. 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
  4. 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

Plugins to configure (ckan.ini)
hierarchy_search
CKAN Settings (ckan.ini)
# ckanext.hierarchy_search.some_setting = some_default_value # ckanext.hierarchy.max_depth = 10 # ckanext.hierarchy.show_dataset_count = true
DB migration to be executed
hierarchy
<< back to Extensions