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 0x7f9df0172150>, 'dataset_id_stored': <haystack.fields.IntegerField object at 0x7f9df01721d0>, 'experiment_id_stored': <haystack.fields.MultiValueField object at 0x7f9df0172190>, 'text': <haystack.fields.CharField object at 0x7f9df0172110>}
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 0x7f9df0d12090>}
declared_fields = {'q': <django.forms.fields.CharField object at 0x7f9df0d12090>}
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 0x7f9df00bf390>, 'dataset_id_stored': <haystack.fields.IntegerField object at 0x7f9df00d0910>, 'experiment_id_stored': <haystack.fields.MultiValueField object at 0x7f9df00d0a50>, 'text': <haystack.fields.CharField object at 0x7f9df00d0c50>}
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 0x7f9df00d0250>, 'experiment_created_time': <haystack.fields.DateTimeField object at 0x7f9df0176f90>, 'experiment_creator': <haystack.fields.CharField object at 0x7f9df00d0550>, 'experiment_description': <haystack.fields.CharField object at 0x7f9df0176f50>, 'experiment_end_time': <haystack.fields.DateTimeField object at 0x7f9df0176d90>, 'experiment_id_stored': <haystack.fields.IntegerField object at 0x7f9df0176f10>, 'experiment_institution_name': <haystack.fields.CharField object at 0x7f9df00d06d0>, 'experiment_start_time': <haystack.fields.DateTimeField object at 0x7f9df0176ed0>, 'experiment_title': <haystack.fields.CharField object at 0x7f9df0176fd0>, 'experiment_update_time': <haystack.fields.DateTimeField object at 0x7f9df0176650>, 'text': <haystack.fields.CharField object at 0x7f9df0176e90>}
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