Esempio n. 1
0
    def get(self, request, format=None):
        if 'query' not in request.query_params:
            return Response({
                'count': 0,
                'page': 0,
                'page_count': 0,
                'results': []
            })

        query = request.query_params['query']
        try:
            page = int(request.query_params.get('page', 1))
        except (ValueError, TypeError):
            page = 1

        if page < 1:
            page = 1

        try:
            with index.query_page(self.ix, query,
                                  page) as (result_page, corrected_query):
                return Response({
                    'count':
                    len(result_page),
                    'page':
                    result_page.pagenum,
                    'page_count':
                    result_page.pagecount,
                    'corrected_query':
                    corrected_query,
                    'results':
                    list(map(self.add_infos_to_hit, result_page))
                })
        except Exception as e:
            return HttpResponseBadRequest(str(e))
Esempio n. 2
0
    def get(self, request, format=None):
        if 'query' in request.query_params:
            query = request.query_params['query']
            try:
                page = int(request.query_params.get('page', 1))
            except (ValueError, TypeError):
                page = 1

            if page < 1:
                page = 1

            with index.query_page(self.ix, query, page) as result_page:
                return Response({
                    'count':
                    len(result_page),
                    'page':
                    result_page.pagenum,
                    'page_count':
                    result_page.pagecount,
                    'results':
                    list(map(self.add_infos_to_hit, result_page))
                })

        else:
            return Response({
                'count': 0,
                'page': 0,
                'page_count': 0,
                'results': []
            })
Esempio n. 3
0
    def get(self, request, format=None):
        from documents import index

        if 'query' in request.query_params:
            query = request.query_params['query']
        else:
            query = None

        if 'more_like' in request.query_params:
            more_like_id = request.query_params['more_like']
            more_like_content = Document.objects.get(id=more_like_id).content
        else:
            more_like_id = None
            more_like_content = None

        if not query and not more_like_id:
            return Response({
                'count': 0,
                'page': 0,
                'page_count': 0,
                'corrected_query': None,
                'results': []
            })

        try:
            page = int(request.query_params.get('page', 1))
        except (ValueError, TypeError):
            page = 1

        if page < 1:
            page = 1

        ix = index.open_index()

        try:
            with index.query_page(
                    ix, page, query, more_like_id,
                    more_like_content) as (result_page,
                                           corrected_query):  # NOQA: E501
                return Response({
                    'count':
                    len(result_page),
                    'page':
                    result_page.pagenum,
                    'page_count':
                    result_page.pagecount,
                    'corrected_query':
                    corrected_query,
                    'results':
                    list(map(self.add_infos_to_hit, result_page))
                })
        except Exception as e:
            return HttpResponseBadRequest(str(e))