Skip to content

Commit fe2aef1

Browse files
committed
more fixup
1 parent 4dc3e35 commit fe2aef1

File tree

4 files changed

+10
-6
lines changed

4 files changed

+10
-6
lines changed

readthedocs/search/api.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,12 +12,13 @@ class PageSearchAPIView(generics.ListAPIView):
1212
serializer_class = PageSearchSerializer
1313

1414
def get_queryset(self):
15-
"""Return Elasticsearch DSL Search object instead of Django Queryset.
15+
"""
16+
Return Elasticsearch DSL Search object instead of Django Queryset.
1617
1718
Django Queryset and elasticsearch-dsl ``Search`` object is similar pattern.
1819
So for searching, its possible to return ``Search`` object instead of queryset.
1920
The ``filter_backends`` and ``pagination_class`` is compatible with ``Search``
2021
"""
2122
query = self.request.query_params.get('query', '')
22-
queryset = PageDocument.search(query=query)
23+
queryset = PageDocument.simple_search(query=query)
2324
return queryset

readthedocs/search/documents.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -87,9 +87,8 @@ def faceted_search(cls, query, projects_list=None, versions_list=None, using=Non
8787
return FileSearch(**kwargs)
8888

8989
@classmethod
90-
def search(cls, *args, **kwargs):
91-
query = kwargs.pop('query')
92-
es_search = super(PageDocument, cls).search(*args, **kwargs)
90+
def simple_search(cls, query, using=None, index=None):
91+
es_search = cls.search(using=using, index=index)
9392
es_query = cls.get_es_query(query=query)
9493

9594
es_search = es_search.query(es_query).highlight('content')

readthedocs/search/filters.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,11 @@ class SearchFilterBackend(filters.BaseFilterBackend):
77

88
"""Filter search result with project"""
99

10-
def filter_queryset(self, request, es_search, view):
10+
def filter_queryset(self, request, queryset, view):
1111
"""Overwrite the method to compatible with Elasticsearch DSL Search object."""
12+
# ``queryset`` is actually a Elasticsearch DSL ``Search`` object.
13+
# So change the variable name
14+
es_search = queryset
1215
project_slug = request.query_params.get('project')
1316
version_slug = request.query_params.get('version')
1417
project_slug_list = get_project_slug_list_or_404(project_slug=project_slug,

readthedocs/search/utils.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -315,6 +315,7 @@ def parse_sections(documentation_type, content):
315315
def get_project_slug_list_or_404(project_slug, user):
316316
"""
317317
Return list of subproject's slug including own slug.
318+
318319
If the project is not available to user, redirect to 404
319320
"""
320321
queryset = Project.objects.api(user).only('slug')

0 commit comments

Comments
 (0)