Skip to main content

This package provides a search indexes for easy Haystack 2 integration with django CMS.

Contributing

This is a an open-source project. We’ll be delighted to receive your feedback in the form of issues and pull requests. Before submitting your pull request, please review our contribution guidelines.

We’re grateful to all contributors who have helped create and maintain this package. Contributors are listed at the contributors section.

Usage

After installing aldryn-search through your package manager of choice, add aldryn_search to your INSTALLED_APPS. If you run a multilingual CMS setup, you have to define a haystack backend for every language in use:

HAYSTACK_CONNECTIONS = {
    'en': {
        'ENGINE': 'haystack.backends.solr_backend.SolrEngine',
        'URL': 'http://my-solr-server/solr/my-site-en/',
        'TIMEOUT': 60 * 5,
        'INCLUDE_SPELLING': True,
        'BATCH_SIZE': 100,
    },
    'fr': {
        'ENGINE': 'haystack.backends.solr_backend.SolrEngine',
        'URL': 'http://my-solr-server/solr/my-site-fr/',
        'TIMEOUT': 60 * 5,
        'INCLUDE_SPELLING': True,
        'BATCH_SIZE': 100,
    },
}

To make sure the correct backend is used during search, add aldryn_search.router.LanguageRouter to your HAYSTACK_ROUTERS setting:

HAYSTACK_ROUTERS = ['aldryn_search.router.LanguageRouter',]

When using multiple languages, usually there’s one search backend per language, when indexing it’s important to know which language is currently being used, this can be facilitated by the ALDRYN_SEARCH_LANGUAGE_FROM_ALIAS setting, this setting could be a callable or a string path that resolves to one.

Please keep in mind that it’s usually not a good idea to import things in your settings, however there are cases where it seems overkill to create a function to handle the alias, for example:

ALDRYN_SEARCH_LANGUAGE_FROM_ALIAS = lambda alias: alias.split('-')[-1]

the example above could be used when using multiple languages and sites, all backends could have a language suffix.

The same could be achieved using a function defined somewhere else in your code like so:

ALDRYN_SEARCH_LANGUAGE_FROM_ALIAS = "my_app.helpers.language_from_alias"

If any of the above return None then settings.LANGUAGE_CODE will be used.

By default this setting evaluates to a function that checks if the alias is in settings.LANGUAGES and if so it uses the alias as a language.

For a complete Haystack setup, please refer to their documentation.

For more documentation, see the docs folder.

Integration with django CMS

aldryn-search comes with an App Hook for django CMS, and a search view using Django’s class based views. If you want to use this app hook, you can either subclass it and register it yourself, or set ALDRYN_SEARCH_REGISTER_APPHOOK to True.

If you want to exclude some cms plugins from indexing, you can specify ALDRYN_SEARCH_PLUGINS_EXCLUDE setting like so:

ALDRYN_SEARCH_EXCLUDED_PLUGINS = [
    "PluginA", "PluginB"
]

For pagination, aldryn-search uses aldryn_common.paginator.DiggPaginator. If you want to use this built-in pagination, make sure to install django-spurl, and add then add spurl to INSTALLED_APPS.

Pagination

Results are paginated according to the ALDRYN_SEARCH_PAGINATION setting (default: 10). If set to None pagination is disabled.

Release files for aldryn-search 1.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for aldryn-search 1.1.0
File Size Uploaded
aldryn-search-1.1.0.tar.gz 23.8 kB Details

Release files / aldryn-search-1.1.0.tar.gz

Download URL aldryn-search-1.1.0.tar.gz
Size 23.8 kB
Tags Source
SHA-256 checksum
How to use checksums
2ebfbff5dfa7c49c554e0ae23b12bfd80962b5d1d72246061e389fa4c75e4511
BLAKE2b-256 checksum
How to use checksums
1e314417ce018ebc17ac056a46c2afcd964eef12f8939c6cf2e5ecb2c2898bb4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via Python-urllib/3.7

Release history Release notifications | RSS feed

This release

1.1.0 This release

1 release file

1.0.1

2 release files

1.0.0

2 release files

0.5.0

2 release files

0.4.1

1 release file

0.4.0

1 release file

0.3.0

2 release files

0.2.12

2 release files

0.2.11

1 release file

0.2.10

1 release file

0.2.9

1 release file

0.2.8

1 release file

0.2.7

1 release file

0.2.6

1 release file

0.2.5

1 release file

0.2.4

1 release file

0.2.3

1 release file

0.2.2

1 release file

0.2.1

1 release file

0.2.0

1 release file

0.1.9

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page