1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57
|
from django.conf import settings
DEFAULT_ALIAS = "default"
# Reserved field names
ID = getattr(settings, "HAYSTACK_ID_FIELD", "id")
DJANGO_CT = getattr(settings, "HAYSTACK_DJANGO_CT_FIELD", "django_ct")
DJANGO_ID = getattr(settings, "HAYSTACK_DJANGO_ID_FIELD", "django_id")
DOCUMENT_FIELD = getattr(settings, "HAYSTACK_DOCUMENT_FIELD", "text")
ALL_FIELD = "_all"
# Default operator. Valid options are AND/OR.
DEFAULT_OPERATOR = getattr(settings, "HAYSTACK_DEFAULT_OPERATOR", "AND")
# Default values on elasticsearch
FUZZINESS = getattr(settings, "HAYSTACK_FUZZINESS", "AUTO")
FUZZY_MIN_SIM = getattr(settings, "HAYSTACK_FUZZY_MIN_SIM", 0.5)
FUZZY_MAX_EXPANSIONS = getattr(settings, "HAYSTACK_FUZZY_MAX_EXPANSIONS", 50)
# Default values on whoosh
FUZZY_WHOOSH_MIN_PREFIX = getattr(settings, "HAYSTACK_FUZZY_WHOOSH_MIN_PREFIX", 3)
FUZZY_WHOOSH_MAX_EDITS = getattr(settings, "HAYSTACK_FUZZY_WHOOSH_MAX_EDITS", 2)
# Valid expression extensions.
VALID_FILTERS = {
"contains",
"exact",
"gt",
"gte",
"lt",
"lte",
"in",
"startswith",
"range",
"endswith",
"content",
"fuzzy",
}
FILTER_SEPARATOR = "__"
# The maximum number of items to display in a SearchQuerySet.__repr__
REPR_OUTPUT_SIZE = 20
# Number of SearchResults to load at a time.
ITERATOR_LOAD_PER_QUERY = getattr(settings, "HAYSTACK_ITERATOR_LOAD_PER_QUERY", 10)
# A marker class in the hierarchy to indicate that it handles search data.
class Indexable:
haystack_use_for_indexing = True
# For the geo bits, since that's what Solr & Elasticsearch seem to silently
# assume...
WGS_84_SRID = 4326
|