django_elasticsearch_dsl_drf.filter_backends.suggester package¶
Submodules¶
django_elasticsearch_dsl_drf.filter_backends.suggester.functional module¶
Functional suggesters backend.
It’s assumed, that fields you’re planning to query suggestions for have been
properly indexed using fields.CompletionField
.
Example:
>>> from django_elasticsearch_dsl import Document, Index, fields
>>>
>>> from books.models import Publisher
>>>
>>> # Name of the Elasticsearch index
>>> PUBLISHER_INDEX = Index(PUBLISHER_INDEX_NAME)
>>> # See Elasticsearch Indices API reference for available settings
>>> PUBLISHER_INDEX.settings(
>>> number_of_shards=1,
>>> number_of_replicas=1
>>> )
>>>
>>> @PUBLISHER_INDEX.doc_type
>>> class PublisherDocument(Document):
>>> "Publisher Elasticsearch document."
>>>
>>> id = fields.IntegerField(attr='id')
>>>
>>> name = fields.StringField(
>>> fields={
>>> 'raw': fields.StringField(analyzer='keyword'),
>>> 'suggest': fields.CompletionField(),
>>> }
>>> )
>>>
>>> info = fields.StringField()
>>>
>>> address = fields.StringField(
>>> fields={
>>> 'raw': fields.StringField(analyzer='keyword')
>>> }
>>> )
>>>
>>> city = fields.StringField(
>>> fields={
>>> 'raw': fields.StringField(analyzer='keyword'),
>>> 'suggest': fields.CompletionField(),
>>> }
>>> )
>>>
>>> state_province = fields.StringField(
>>> fields={
>>> 'raw': fields.StringField(analyzer='keyword'),
>>> 'suggest': fields.CompletionField(),
>>> }
>>> )
>>>
>>> country = fields.StringField(
>>> fields={
>>> 'raw': fields.StringField(analyzer='keyword'),
>>> 'suggest': fields.CompletionField(),
>>> }
>>> )
>>>
>>> website = fields.StringField()
>>>
>>> class Meta:
>>> "Meta options."
>>>
>>> model = Publisher # The model associate with this Document
- class django_elasticsearch_dsl_drf.filter_backends.suggester.functional.FunctionalSuggesterFilterBackend[source]¶
Bases:
rest_framework.filters.BaseFilterBackend
,django_elasticsearch_dsl_drf.filter_backends.mixins.FilterBackendMixin
Suggester filter backend for Elasticsearch.
Suggestion functionality is exclusive. Once you have queried the
FunctionalSuggesterFilterBackend
, the latter will transform your current search query into another search query (altered). Therefore, always add it as the very last filter backend.Example:
>>> from django_elasticsearch_dsl_drf.constants import ( >>> FUNCTIONAL_SUGGESTER_COMPLETION_MATCH, >>> FUNCTIONAL_SUGGESTER_COMPLETION_PREFIX, >>> FUNCTIONAL_SUGGESTER_PHRASE_MATCH, >>> FUNCTIONAL_SUGGESTER_PHRASE_MATCH, >>> FUNCTIONAL_SUGGESTER_TERM_MATCH, >>> ) >>> from django_elasticsearch_dsl_drf.filter_backends import ( >>> FunctionalSuggesterFilterBackend >>> ) >>> from django_elasticsearch_dsl_drf.viewsets import DocumentViewSet >>> >>> # Local PublisherDocument definition >>> from .documents import PublisherDocument >>> >>> # Local PublisherDocument serializer >>> from .serializers import PublisherDocumentSerializer >>> >>> class PublisherDocumentView(DocumentViewSet): >>> >>> document = PublisherDocument >>> serializer_class = PublisherDocumentSerializer >>> filter_backends = [ >>> # ... >>> FunctionalSuggesterFilterBackend, >>> ] >>> # Suggester fields >>> functional_suggester_fields = { >>> 'name_suggest': { >>> 'field': 'name.suggest', >>> 'suggesters': [ >>> FUNCTIONAL_SUGGESTER_COMPLETION_MATCH, >>> FUNCTIONAL_SUGGESTER_COMPLETION_PREFIX, >>> ], >>> }, >>> 'city_suggest': { >>> 'field': 'city.suggest', >>> 'suggesters': [ >>> FUNCTIONAL_SUGGESTER_COMPLETION_PREFIX, >>> ], >>> }, >>> 'state_province_suggest': { >>> 'field': 'state_province.suggest', >>> 'suggesters': [ >>> FUNCTIONAL_SUGGESTER_COMPLETION_MATCH, >>> ], >>> }, >>> 'country_suggest': { >>> 'field': 'country.suggest', >>> 'suggesters': [ >>> FUNCTIONAL_SUGGESTER_COMPLETION_PREFIX, >>> ], >>> }, >>> }
- classmethod apply_query_size(queryset, options)[source]¶
Apply query size.
- Parameters
queryset –
options –
- Returns
- classmethod apply_suggester_completion_match(suggester_name, queryset, options, value)[source]¶
Apply completion suggester match.
This is effective when used with Ngram fields.
- Parameters
suggester_name (str) –
queryset (elasticsearch_dsl.search.Search) – Original queryset.
options (dict) – Filter options.
value (str) – value to filter on.
- Returns
Modified queryset.
- Return type
elasticsearch_dsl.search.Search
- classmethod apply_suggester_completion_prefix(suggester_name, queryset, options, value)[source]¶
Apply completion suggester prefix.
This is effective when used with Keyword fields.
- Parameters
suggester_name (str) –
queryset (elasticsearch_dsl.search.Search) – Original queryset.
options (dict) – Filter options.
value (str) – value to filter on.
- Returns
Modified queryset.
- Return type
elasticsearch_dsl.search.Search
- clean_queryset(queryset)[source]¶
Clean the queryset.
Remove aggregations.
Remove highlight.
Remove sorting options.
- Parameters
queryset –
- Returns
- extract_field_name(field_name)[source]¶
Extract field name.
For instance, “name.suggest” or “name.raw” becomes “name”.
- Parameters
field_name –
- Returns
- Return type
str
- filter_queryset(request, queryset, view)[source]¶
Filter the queryset.
- Parameters
request (rest_framework.request.Request) – Django REST framework request.
queryset (elasticsearch_dsl.search.Search) – Base queryset.
view (rest_framework.viewsets.ReadOnlyModelViewSet) – View.
- Returns
Updated queryset.
- Return type
elasticsearch_dsl.search.Search
- get_suggester_query_params(request, view)[source]¶
Get query params to be for suggestions.
- Parameters
request (rest_framework.request.Request) – Django REST framework request.
view (rest_framework.viewsets.ReadOnlyModelViewSet) – View.
- Returns
Request query params to filter on.
- Return type
dict
django_elasticsearch_dsl_drf.filter_backends.suggester.native module¶
Suggesters backend.
It’s assumed, that fields you’re planning to query suggestions for have been
properly indexed using fields.CompletionField
.
Example:
>>> from django_elasticsearch_dsl import Document, Index, fields
>>>
>>> from books.models import Publisher
>>>
>>> # Name of the Elasticsearch index
>>> PUBLISHER_INDEX = Index(PUBLISHER_INDEX_NAME)
>>> # See Elasticsearch Indices API reference for available settings
>>> PUBLISHER_INDEX.settings(
>>> number_of_shards=1,
>>> number_of_replicas=1
>>> )
>>>
>>> @PUBLISHER_INDEX.doc_type
>>> class PublisherDocument(Document):
>>> "Publisher Elasticsearch document."
>>>
>>> id = fields.IntegerField(attr='id')
>>>
>>> name = fields.StringField(
>>> fields={
>>> 'raw': fields.StringField(analyzer='keyword'),
>>> 'suggest': fields.CompletionField(),
>>> }
>>> )
>>>
>>> info = fields.StringField()
>>>
>>> address = fields.StringField(
>>> fields={
>>> 'raw': fields.StringField(analyzer='keyword')
>>> }
>>> )
>>>
>>> city = fields.StringField(
>>> fields={
>>> 'raw': fields.StringField(analyzer='keyword'),
>>> 'suggest': fields.CompletionField(),
>>> }
>>> )
>>>
>>> state_province = fields.StringField(
>>> fields={
>>> 'raw': fields.StringField(analyzer='keyword'),
>>> 'suggest': fields.CompletionField(),
>>> }
>>> )
>>>
>>> country = fields.StringField(
>>> fields={
>>> 'raw': fields.StringField(analyzer='keyword'),
>>> 'suggest': fields.CompletionField(),
>>> }
>>> )
>>>
>>> website = fields.StringField()
>>>
>>> class Meta:
>>> "Meta options."
>>>
>>> model = Publisher # The model associate with this Document
- class django_elasticsearch_dsl_drf.filter_backends.suggester.native.SuggesterFilterBackend[source]¶
Bases:
rest_framework.filters.BaseFilterBackend
,django_elasticsearch_dsl_drf.filter_backends.mixins.FilterBackendMixin
Suggester filter backend for Elasticsearch.
Suggestion functionality is exclusive. Once you have queried the
SuggesterFilterBackend
, the latter will transform your current search query into suggestion search query (which is very different). Therefore, always add it as the very last filter backend.Example:
>>> from django_elasticsearch_dsl_drf.constants import ( >>> SUGGESTER_TERM, >>> SUGGESTER_PHRASE, >>> SUGGESTER_COMPLETION, >>> ) >>> from django_elasticsearch_dsl_drf.filter_backends import ( >>> SuggesterFilterBackend >>> ) >>> from django_elasticsearch_dsl_drf.viewsets import DocumentViewSet >>> >>> # Local PublisherDocument definition >>> from .documents import PublisherDocument >>> >>> # Local PublisherDocument serializer >>> from .serializers import PublisherDocumentSerializer >>> >>> class PublisherDocumentView(BaseDocumentViewSet): >>> >>> document = PublisherDocument >>> serializer_class = PublisherDocumentSerializer >>> filter_backends = [ >>> # ... >>> SuggesterFilterBackend, >>> ] >>> # Suggester fields >>> suggester_fields = { >>> 'name_suggest': { >>> 'field': 'name.suggest', >>> 'suggesters': [ >>> SUGGESTER_TERM, >>> SUGGESTER_PHRASE, >>> SUGGESTER_COMPLETION, >>> ], >>> }, >>> 'city_suggest': { >>> 'field': 'city.suggest', >>> 'suggesters': [ >>> SUGGESTER_COMPLETION, >>> ], >>> }, >>> 'state_province_suggest': { >>> 'field': 'state_province.suggest', >>> 'suggesters': [ >>> SUGGESTER_COMPLETION, >>> ], >>> }, >>> 'country_suggest': { >>> 'field': 'country.suggest', >>> 'suggesters': [ >>> SUGGESTER_COMPLETION, >>> ], >>> }, >>> }
- classmethod apply_suggester_completion(suggester_name, queryset, options, value)[source]¶
Apply completion suggester.
- Parameters
suggester_name (str) –
queryset (elasticsearch_dsl.search.Search) – Original queryset.
options (dict) – Filter options.
value (str) – value to filter on.
- Returns
Modified queryset.
- Return type
elasticsearch_dsl.search.Search
- classmethod apply_suggester_phrase(suggester_name, queryset, options, value)[source]¶
Apply phrase suggester.
- Parameters
suggester_name (str) –
queryset (elasticsearch_dsl.search.Search) – Original queryset.
options (dict) – Filter options.
value (str) – value to filter on.
- Returns
Modified queryset.
- Return type
elasticsearch_dsl.search.Search
- classmethod apply_suggester_term(suggester_name, queryset, options, value)[source]¶
Apply term suggester.
- Parameters
suggester_name (str) –
queryset (elasticsearch_dsl.search.Search) – Original queryset.
options (dict) – Filter options.
value (str) – value to filter on.
- Returns
Modified queryset.
- Return type
elasticsearch_dsl.search.Search
- filter_queryset(request, queryset, view)[source]¶
Filter the queryset.
- Parameters
request (rest_framework.request.Request) – Django REST framework request.
queryset (elasticsearch_dsl.search.Search) – Base queryset.
view (rest_framework.viewsets.ReadOnlyModelViewSet) – View.
- Returns
Updated queryset.
- Return type
elasticsearch_dsl.search.Search
- classmethod get_suggester_context(field, suggester_name, request, view)[source]¶
Get suggester context.
Given the following definition (in ViewSets):
>>> # Suggester fields >>> suggester_fields = { >>> 'title_suggest': { >>> 'field': 'title.suggest', >>> 'default_suggester': SUGGESTER_COMPLETION, >>> }, >>> 'title_suggest_context': { >>> 'field': 'title.suggest_context', >>> 'default_suggester': SUGGESTER_COMPLETION, >>> 'completion_options': { >>> 'filters': { >>> 'title_suggest_tag': 'tag', >>> 'title_suggest_state': 'state', >>> 'title_suggest_publisher': 'publisher', >>> }, >>> 'size': 10, >>> } >>> }, >>> }
http://localhost:8000/search/books-frontend/suggest/?title_suggest_context=M
When talking about the queries made, we have the following. Multiple values per field are combined with OR:
>>> completion={ >>> 'field': options['field'], >>> 'size': 10, >>> 'contexts': { >>> 'tag': ['History', 'Drama'], >>> } >>> }
The following works with OR as well, so it seems we have OR only. However, the following construction is more handy, since it allows us to play with boosting nicely. Also, it allows to provide prefix param (which in case of the example given below means that suggestions shall match both categories with “Child”, “Children”, “Childrend’s”). Simply put it’s treated as prefix, rather than term.
>>> completion={ >>> 'field': options['field'], >>> 'size': 10, >>> 'contexts': { >>> 'tag': [ >>> {'context': 'History'}, >>> {'context': 'Drama', 'boost': 2}, >>> {'context': 'Children', 'prefix': True}, >>> ], >>> }, >>> }
Sample query for category filter:
/search/books-frontend/suggest/ ?title_suggest_context=M &title_suggest_tag=Art__2.0 &title_suggest_tag=Documentary__2.0__prefix &title_suggest_publisher=Apress
The query params would be:
query_params: <QueryDict: {
‘title_suggest_context’: [‘M’], ‘title_suggest_tag’: [‘Art__2.0’, ‘Documentary__2.0__prefix’], ‘title_suggest_publisher’: [‘Apress’]
}>
Sample query for geo filter:
/search/address/suggest/ ?street_suggest_context=M &street_suggest_loc=43.66__-79.22__2.0__10000km
The query params would be:
query_params: <QueryDict: {
‘street_suggest_context’: [‘M’], ‘street_suggest_loc’: [‘Art__43.66__-79.22__2.0__10000km’],
}>
- Returns
Module contents¶
Suggester filtering backends.
- class django_elasticsearch_dsl_drf.filter_backends.suggester.FunctionalSuggesterFilterBackend[source]¶
Bases:
rest_framework.filters.BaseFilterBackend
,django_elasticsearch_dsl_drf.filter_backends.mixins.FilterBackendMixin
Suggester filter backend for Elasticsearch.
Suggestion functionality is exclusive. Once you have queried the
FunctionalSuggesterFilterBackend
, the latter will transform your current search query into another search query (altered). Therefore, always add it as the very last filter backend.Example:
>>> from django_elasticsearch_dsl_drf.constants import ( >>> FUNCTIONAL_SUGGESTER_COMPLETION_MATCH, >>> FUNCTIONAL_SUGGESTER_COMPLETION_PREFIX, >>> FUNCTIONAL_SUGGESTER_PHRASE_MATCH, >>> FUNCTIONAL_SUGGESTER_PHRASE_MATCH, >>> FUNCTIONAL_SUGGESTER_TERM_MATCH, >>> ) >>> from django_elasticsearch_dsl_drf.filter_backends import ( >>> FunctionalSuggesterFilterBackend >>> ) >>> from django_elasticsearch_dsl_drf.viewsets import DocumentViewSet >>> >>> # Local PublisherDocument definition >>> from .documents import PublisherDocument >>> >>> # Local PublisherDocument serializer >>> from .serializers import PublisherDocumentSerializer >>> >>> class PublisherDocumentView(DocumentViewSet): >>> >>> document = PublisherDocument >>> serializer_class = PublisherDocumentSerializer >>> filter_backends = [ >>> # ... >>> FunctionalSuggesterFilterBackend, >>> ] >>> # Suggester fields >>> functional_suggester_fields = { >>> 'name_suggest': { >>> 'field': 'name.suggest', >>> 'suggesters': [ >>> FUNCTIONAL_SUGGESTER_COMPLETION_MATCH, >>> FUNCTIONAL_SUGGESTER_COMPLETION_PREFIX, >>> ], >>> }, >>> 'city_suggest': { >>> 'field': 'city.suggest', >>> 'suggesters': [ >>> FUNCTIONAL_SUGGESTER_COMPLETION_PREFIX, >>> ], >>> }, >>> 'state_province_suggest': { >>> 'field': 'state_province.suggest', >>> 'suggesters': [ >>> FUNCTIONAL_SUGGESTER_COMPLETION_MATCH, >>> ], >>> }, >>> 'country_suggest': { >>> 'field': 'country.suggest', >>> 'suggesters': [ >>> FUNCTIONAL_SUGGESTER_COMPLETION_PREFIX, >>> ], >>> }, >>> }
- classmethod apply_query_size(queryset, options)[source]¶
Apply query size.
- Parameters
queryset –
options –
- Returns
- classmethod apply_suggester_completion_match(suggester_name, queryset, options, value)[source]¶
Apply completion suggester match.
This is effective when used with Ngram fields.
- Parameters
suggester_name (str) –
queryset (elasticsearch_dsl.search.Search) – Original queryset.
options (dict) – Filter options.
value (str) – value to filter on.
- Returns
Modified queryset.
- Return type
elasticsearch_dsl.search.Search
- classmethod apply_suggester_completion_prefix(suggester_name, queryset, options, value)[source]¶
Apply completion suggester prefix.
This is effective when used with Keyword fields.
- Parameters
suggester_name (str) –
queryset (elasticsearch_dsl.search.Search) – Original queryset.
options (dict) – Filter options.
value (str) – value to filter on.
- Returns
Modified queryset.
- Return type
elasticsearch_dsl.search.Search
- clean_queryset(queryset)[source]¶
Clean the queryset.
Remove aggregations.
Remove highlight.
Remove sorting options.
- Parameters
queryset –
- Returns
- extract_field_name(field_name)[source]¶
Extract field name.
For instance, “name.suggest” or “name.raw” becomes “name”.
- Parameters
field_name –
- Returns
- Return type
str
- filter_queryset(request, queryset, view)[source]¶
Filter the queryset.
- Parameters
request (rest_framework.request.Request) – Django REST framework request.
queryset (elasticsearch_dsl.search.Search) – Base queryset.
view (rest_framework.viewsets.ReadOnlyModelViewSet) – View.
- Returns
Updated queryset.
- Return type
elasticsearch_dsl.search.Search
- get_suggester_query_params(request, view)[source]¶
Get query params to be for suggestions.
- Parameters
request (rest_framework.request.Request) – Django REST framework request.
view (rest_framework.viewsets.ReadOnlyModelViewSet) – View.
- Returns
Request query params to filter on.
- Return type
dict
- class django_elasticsearch_dsl_drf.filter_backends.suggester.SuggesterFilterBackend[source]¶
Bases:
rest_framework.filters.BaseFilterBackend
,django_elasticsearch_dsl_drf.filter_backends.mixins.FilterBackendMixin
Suggester filter backend for Elasticsearch.
Suggestion functionality is exclusive. Once you have queried the
SuggesterFilterBackend
, the latter will transform your current search query into suggestion search query (which is very different). Therefore, always add it as the very last filter backend.Example:
>>> from django_elasticsearch_dsl_drf.constants import ( >>> SUGGESTER_TERM, >>> SUGGESTER_PHRASE, >>> SUGGESTER_COMPLETION, >>> ) >>> from django_elasticsearch_dsl_drf.filter_backends import ( >>> SuggesterFilterBackend >>> ) >>> from django_elasticsearch_dsl_drf.viewsets import DocumentViewSet >>> >>> # Local PublisherDocument definition >>> from .documents import PublisherDocument >>> >>> # Local PublisherDocument serializer >>> from .serializers import PublisherDocumentSerializer >>> >>> class PublisherDocumentView(BaseDocumentViewSet): >>> >>> document = PublisherDocument >>> serializer_class = PublisherDocumentSerializer >>> filter_backends = [ >>> # ... >>> SuggesterFilterBackend, >>> ] >>> # Suggester fields >>> suggester_fields = { >>> 'name_suggest': { >>> 'field': 'name.suggest', >>> 'suggesters': [ >>> SUGGESTER_TERM, >>> SUGGESTER_PHRASE, >>> SUGGESTER_COMPLETION, >>> ], >>> }, >>> 'city_suggest': { >>> 'field': 'city.suggest', >>> 'suggesters': [ >>> SUGGESTER_COMPLETION, >>> ], >>> }, >>> 'state_province_suggest': { >>> 'field': 'state_province.suggest', >>> 'suggesters': [ >>> SUGGESTER_COMPLETION, >>> ], >>> }, >>> 'country_suggest': { >>> 'field': 'country.suggest', >>> 'suggesters': [ >>> SUGGESTER_COMPLETION, >>> ], >>> }, >>> }
- classmethod apply_suggester_completion(suggester_name, queryset, options, value)[source]¶
Apply completion suggester.
- Parameters
suggester_name (str) –
queryset (elasticsearch_dsl.search.Search) – Original queryset.
options (dict) – Filter options.
value (str) – value to filter on.
- Returns
Modified queryset.
- Return type
elasticsearch_dsl.search.Search
- classmethod apply_suggester_phrase(suggester_name, queryset, options, value)[source]¶
Apply phrase suggester.
- Parameters
suggester_name (str) –
queryset (elasticsearch_dsl.search.Search) – Original queryset.
options (dict) – Filter options.
value (str) – value to filter on.
- Returns
Modified queryset.
- Return type
elasticsearch_dsl.search.Search
- classmethod apply_suggester_term(suggester_name, queryset, options, value)[source]¶
Apply term suggester.
- Parameters
suggester_name (str) –
queryset (elasticsearch_dsl.search.Search) – Original queryset.
options (dict) – Filter options.
value (str) – value to filter on.
- Returns
Modified queryset.
- Return type
elasticsearch_dsl.search.Search
- filter_queryset(request, queryset, view)[source]¶
Filter the queryset.
- Parameters
request (rest_framework.request.Request) – Django REST framework request.
queryset (elasticsearch_dsl.search.Search) – Base queryset.
view (rest_framework.viewsets.ReadOnlyModelViewSet) – View.
- Returns
Updated queryset.
- Return type
elasticsearch_dsl.search.Search
- classmethod get_suggester_context(field, suggester_name, request, view)[source]¶
Get suggester context.
Given the following definition (in ViewSets):
>>> # Suggester fields >>> suggester_fields = { >>> 'title_suggest': { >>> 'field': 'title.suggest', >>> 'default_suggester': SUGGESTER_COMPLETION, >>> }, >>> 'title_suggest_context': { >>> 'field': 'title.suggest_context', >>> 'default_suggester': SUGGESTER_COMPLETION, >>> 'completion_options': { >>> 'filters': { >>> 'title_suggest_tag': 'tag', >>> 'title_suggest_state': 'state', >>> 'title_suggest_publisher': 'publisher', >>> }, >>> 'size': 10, >>> } >>> }, >>> }
http://localhost:8000/search/books-frontend/suggest/?title_suggest_context=M
When talking about the queries made, we have the following. Multiple values per field are combined with OR:
>>> completion={ >>> 'field': options['field'], >>> 'size': 10, >>> 'contexts': { >>> 'tag': ['History', 'Drama'], >>> } >>> }
The following works with OR as well, so it seems we have OR only. However, the following construction is more handy, since it allows us to play with boosting nicely. Also, it allows to provide prefix param (which in case of the example given below means that suggestions shall match both categories with “Child”, “Children”, “Childrend’s”). Simply put it’s treated as prefix, rather than term.
>>> completion={ >>> 'field': options['field'], >>> 'size': 10, >>> 'contexts': { >>> 'tag': [ >>> {'context': 'History'}, >>> {'context': 'Drama', 'boost': 2}, >>> {'context': 'Children', 'prefix': True}, >>> ], >>> }, >>> }
Sample query for category filter:
/search/books-frontend/suggest/ ?title_suggest_context=M &title_suggest_tag=Art__2.0 &title_suggest_tag=Documentary__2.0__prefix &title_suggest_publisher=Apress
The query params would be:
query_params: <QueryDict: {
‘title_suggest_context’: [‘M’], ‘title_suggest_tag’: [‘Art__2.0’, ‘Documentary__2.0__prefix’], ‘title_suggest_publisher’: [‘Apress’]
}>
Sample query for geo filter:
/search/address/suggest/ ?street_suggest_context=M &street_suggest_loc=43.66__-79.22__2.0__10000km
The query params would be:
query_params: <QueryDict: {
‘street_suggest_context’: [‘M’], ‘street_suggest_loc’: [‘Art__43.66__-79.22__2.0__10000km’],
}>
- Returns