tardis.search package

Submodules

tardis.search.datafile_index module

search indexes for single search

class tardis.search.datafile_index.DataFileIndex

Bases: haystack.indexes.SearchIndex, haystack.constants.Indexable

datafile_filename = <haystack.fields.CharField object>
dataset_id_stored = <haystack.fields.IntegerField object>
experiment_id_stored = <haystack.fields.MultiValueField object>
fields = {'datafile_filename': <haystack.fields.CharField object>, 'dataset_id_stored': <haystack.fields.IntegerField object>, 'experiment_id_stored': <haystack.fields.MultiValueField object>, 'text': <haystack.fields.CharField object>}
get_model()
objects = <haystack.manager.SearchIndexManager object>
prepare_experiment_id_stored(obj)
prepare_text(obj)
text = <haystack.fields.CharField object>

tardis.search.forms module

class tardis.search.forms.GroupedSearchForm(*args, **kwargs)

Bases: haystack.forms.ModelSearchForm

base_fields = {'q': <django.forms.fields.CharField object>}
declared_fields = {'q': <django.forms.fields.CharField object>}
media
search(*args, **kwargs)

tardis.search.search_indexes module

search indexes for single search

class tardis.search.search_indexes.DatasetIndex

Bases: haystack.indexes.SearchIndex, haystack.constants.Indexable

dataset_description = <haystack.fields.CharField object>
dataset_id_stored = <haystack.fields.IntegerField object>
experiment_id_stored = <haystack.fields.MultiValueField object>
fields = {'dataset_description': <haystack.fields.CharField object>, 'dataset_id_stored': <haystack.fields.IntegerField object>, 'experiment_id_stored': <haystack.fields.MultiValueField object>, 'text': <haystack.fields.CharField object>}
get_model()
objects = <haystack.manager.SearchIndexManager object>
prepare_experiment_id_stored(obj)
prepare_text(obj)

Elasticsearch’s standard tokenizer won’t split on underscores, as it uses the Unicode Text Segmentation algorithm, as specified in the Unicode Standard Annex #29. Some MyTardis users replace spaces with underscores in folder names, because their instrument data collection software won’t allow spaces in paths, so we replace underscores with spaces in the search index, but they will still appear as underscores in the search results.

text = <haystack.fields.CharField object>
class tardis.search.search_indexes.ExperimentIndex

Bases: haystack.indexes.SearchIndex, haystack.constants.Indexable

experiment_author = <haystack.fields.MultiValueField object>
experiment_created_time = <haystack.fields.DateTimeField object>
experiment_creator = <haystack.fields.CharField object>
experiment_description = <haystack.fields.CharField object>
experiment_end_time = <haystack.fields.DateTimeField object>
experiment_id_stored = <haystack.fields.IntegerField object>
experiment_institution_name = <haystack.fields.CharField object>
experiment_start_time = <haystack.fields.DateTimeField object>
experiment_title = <haystack.fields.CharField object>
experiment_update_time = <haystack.fields.DateTimeField object>
fields = {'experiment_author': <haystack.fields.MultiValueField object>, 'experiment_created_time': <haystack.fields.DateTimeField object>, 'experiment_creator': <haystack.fields.CharField object>, 'experiment_description': <haystack.fields.CharField object>, 'experiment_end_time': <haystack.fields.DateTimeField object>, 'experiment_id_stored': <haystack.fields.IntegerField object>, 'experiment_institution_name': <haystack.fields.CharField object>, 'experiment_start_time': <haystack.fields.DateTimeField object>, 'experiment_title': <haystack.fields.CharField object>, 'experiment_update_time': <haystack.fields.DateTimeField object>, 'text': <haystack.fields.CharField object>}
get_model()
index_queryset(using=None)

Used when the entire index for model is updated.

objects = <haystack.manager.SearchIndexManager object>
prepare_experiment_creator(obj)
prepare_experimentauthor(obj)
prepare_text(obj)

Elasticsearch’s standard tokenizer won’t split on underscores, as it uses the Unicode Text Segmentation algorithm, as specified in the Unicode Standard Annex #29. Some MyTardis users replace spaces with underscores in folder names, because their instrument data collection software won’t allow spaces in paths, so we replace underscores with spaces in the search index, but they will still appear as underscores in the search results.

text = <haystack.fields.CharField object>

tardis.search.urls module

tardis.search.utils module

class tardis.search.utils.SearchQueryString(query_string)

Bases: object

Class to manage switching between space separated search queries and ‘+’ separated search queries (for addition to urls

TODO This would probably be better handled with filters

query_string()
url_safe_query()

tardis.search.views module

views relevant to search

class tardis.search.views.ExperimentSearchView(**kwargs)

Bases: haystack.generic_views.SearchView

create_response()
extra_context()
class tardis.search.views.SingleSearchView(**kwargs)

Bases: haystack.generic_views.SearchView

form_class

alias of tardis.search.forms.GroupedSearchForm

form_valid(form)

If the form is valid, redirect to the supplied URL.

template_name = 'search/search.html'
tardis.search.views.search_experiment(request)

Either show the search experiment form or the result of the search experiment query.

tardis.search.views.search_quick(request)

Module contents