This extension hooks into the creation and insertion of DataStore tables and records, and dynamically creates and alters search indices. By default, it uses SOLR as the search engine.
Key Features
- Search Index Creation: Automatically creates and manages SOLR search indices for DataStore resources
- Configurable Engine: Supports different search engines via
IDatastoreSearchBackend interface
- Database-Only Mode: Option to only use search engine without database storage
- Threshold-Based Indexing: Can set minimum row count before creating search index
- Redis Queue Integration: Uses Redis for asynchronous SOLR core creation
- XLoader/DataPusher Integration: Compatible with data loading plugins
Requirements
- SOLR 9+ running in Stand Alone mode (Cloud Mode NOT supported)
- Python SOLR Utils service running on SOLR server
- Redis for job queue management
- CKAN jobs worker service running for callbacks
Configuration Options
| Setting |
Description |
Default |
ckanext.datastore_search.engine |
Search engine to use |
solr |
ckanext.datastore_search.url |
URL to search engine server |
required |
ckanext.datastore_search.prefix |
Prefix for SOLR core names |
datastore_ |
ckanext.datastore_search.only_use_engine |
Skip database insertion |
False |
ckanext.datastore_search.min_rows_for_index |
Minimum rows to create index |
100000 |
ckanext.datastore_search.redis.queue_name |
Redis queue name for core creation |
ckan_ds_create_index |
ckanext.datastore_search.solr.configset |
SOLR configset name |
datastore_resource |
SOLR Setup
Requires creating a configset directory and copying managed-schema and solrconfig.xml from the extension’s config/solr directory.
License
AGPL-3.0