reviewboard.search.search_backends.base¶
The base search backend classes.
- class SearchBackendForm(*args, **kwargs)[source]¶
Bases:
Form
A search backend configuration form.
This form allows the configuration of a Haystack backend to be configured from the admin interface and reloaded on the fly.
- __init__(*args, **kwargs)[source]¶
Initialize the backend.
- Parameters:
request (
django.http.HttpRequest
) – The current HTTP request.
- __annotations__ = {}¶
- declared_fields = {}¶
- class SearchBackend[source]¶
Bases:
object
A search backend.
A SearchBackend is a wrapper around a Haystack backend that has methods for getting and setting per-backend configuration. This allows the backend to be configured at runtime and live reloaded, instead of having them hardcoded in
settings.py
.- property configuration[source]¶
The configuration for the search engine.
- Returns:
The configuration for the search engine.
- Return type:
- get_configuration_from_form_data(form_data)[source]¶
Return the configuration from the form’s data.
- Args:
- form_data (dict):
The form data.
- Returns:
The search engine configuration.
- Return type:
- get_form_data()[source]¶
Return the form data for the current configuration.
- Returns:
The search engine form data.
- Return type:
- load_haystack_engine(**kwargs)[source]¶
Load the Haystack backend engine.
This will construct the engine with the provided parameters. A new instance will be constructed every time this is called.
- Parameters:
**kwargs (
dict
) – Keyword arguments to pass to the engine constructor.- Returns:
The resulting engine instance.
- Return type:
django_haystack.backends.BaseEngine
- validate(configuration, **kwargs)[source]¶
Validate the settings and dependencies for the search backend.
This will perform a test search to ensure the configuration works.
Subclasses can override this to perform other checks that may be required (such as checking for a suitable module). They should call the parent method in order to perform a test search using the configured settings.
Changed in version 4.0.5: Added the
configuration
and**kwargs
arguments. Subclasses msut be updated to take**kwargs
.- Raises:
django.core.exceptions.ValidationError – Backend configuration, supporting modules, or the test search failed.