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 at 0x7ff133484ed0>, 'dataset_id_stored': <haystack.fields.IntegerField object at 0x7ff133484f50>, 'experiment_id_stored': <haystack.fields.MultiValueField object at 0x7ff133484f10>, 'text': <haystack.fields.CharField object at 0x7ff133484e90>}
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 at 0x7ff13435a410>}
declared_fields = {'q': <django.forms.fields.CharField object at 0x7ff13435a410>}
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 at 0x7ff133639a50>, 'dataset_id_stored': <haystack.fields.IntegerField object at 0x7ff133639d90>, 'experiment_id_stored': <haystack.fields.MultiValueField object at 0x7ff133639910>, 'text': <haystack.fields.CharField object at 0x7ff133639dd0>}
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 at 0x7ff133639850>, 'experiment_created_time': <haystack.fields.DateTimeField object at 0x7ff133790f50>, 'experiment_creator': <haystack.fields.CharField object at 0x7ff13374e310>, 'experiment_description': <haystack.fields.CharField object at 0x7ff133790cd0>, 'experiment_end_time': <haystack.fields.DateTimeField object at 0x7ff13374e0d0>, 'experiment_id_stored': <haystack.fields.IntegerField object at 0x7ff133790e10>, 'experiment_institution_name': <haystack.fields.CharField object at 0x7ff13374e190>, 'experiment_start_time': <haystack.fields.DateTimeField object at 0x7ff133790ed0>, 'experiment_title': <haystack.fields.CharField object at 0x7ff133790bd0>, 'experiment_update_time': <haystack.fields.DateTimeField object at 0x7ff13374e1d0>, 'text': <haystack.fields.CharField object at 0x7ff133790e90>}
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