def more_like_this(self, request): query = request.GET.get('q', '') exclude_id = request.GET.get('exclude_id') size = int(request.GET.get('size', settings.MAX_QUERIES)) results, count = SearchBackend.more_like_this(query, exclude_id, size) return Response({'query': query, 'results': results, 'count': count})
def list(self, request): size = request.GET.get('size', 20) tags = SearchBackend.tag_search(size) tags['size'] = size return Response(tags)
def scroll(self, request): page_size = int(request.GET.get('page_size', MAX_SCROLL_SIZE)) scroll_id = request.GET.get('scroll_id') if page_size > MAX_SCROLL_SIZE: page_size = MAX_SCROLL_SIZE results, scroll_id, count = SearchBackend.scroll(page_size, scroll_id) resp = {'results': results, 'count': count} if scroll_id: resp['scroll_id'] = scroll_id return Response(resp)
def status(self, request): return Response(SearchBackend.search_stats())
def list(self, request): query = request.GET.get('q', '') size = request.GET.get('size', settings.MAX_QUERIES) results, count = SearchBackend.search(query, size) return Response({'query': query, 'results': results, 'count': count})
def random(self, request): data, count = SearchBackend.random(request.GET.get('count', 3)) return Response({'count': count, 'articles': data})
def retrieve(self, request, pk=None): return Response(SearchBackend.get_article(pk))