def term_query( request, field, term ): """Results of a search query. """ # prep query for elasticsearch terms_display = {'field':field, 'term':term} terms = {field:term} facet = faceting.get_facet(field) for t in facet['terms']: if t['id'] == term: try: terms_display['term'] = t['title_display'] except: terms_display['term'] = t['title'] break filters = {} fields = models.all_list_fields() sort = {'record_created': request.GET.get('record_created', ''), 'record_lastmod': request.GET.get('record_lastmod', ''),} # do the query results = elasticsearch.query(settings.ELASTICSEARCH_HOST_PORT, settings.DOCUMENT_INDEX, term=terms, filters=filters, fields=fields, sort=sort) hits = models.massage_query_results(results) paginator = Paginator(hits, settings.RESULTS_PER_PAGE) page = paginator.page(request.GET.get('page', 1)) return render_to_response( 'ui/search/results.html', {'paginator': paginator, 'page': page, 'terms': terms_display, 'filters': filters, 'sort': sort,}, context_instance=RequestContext(request, processors=[]) )
def results(request): """Results of a search query. """ # prep query for elasticsearch model = request.GET.get('model', None) q = django_urlquote(request.GET.get('query', '')) filters = {} fields = models.all_list_fields() sort = { 'record_created': request.GET.get('record_created', ''), 'record_lastmod': request.GET.get('record_lastmod', ''), } # do the query results = elasticsearch.query(settings.ELASTICSEARCH_HOST_PORT, settings.DOCUMENT_INDEX, query=q, filters=filters, fields=fields, sort=sort) hits = models.massage_query_results(results) paginator = Paginator(hits, settings.RESULTS_PER_PAGE) page = paginator.page(request.GET.get('page', 1)) return render_to_response('ui/search/results.html', { 'paginator': paginator, 'page': page, 'query': q, 'filters': filters, 'sort': sort, }, context_instance=RequestContext(request, processors=[]))
def results( request ): """Results of a search query. """ # prep query for elasticsearch model = request.GET.get('model', None) q = django_urlquote(request.GET.get('query', '')) filters = {} fields = models.all_list_fields() sort = {'record_created': request.GET.get('record_created', ''), 'record_lastmod': request.GET.get('record_lastmod', ''),} # do the query results = elasticsearch.query(settings.ELASTICSEARCH_HOST_PORT, settings.DOCUMENT_INDEX, query=q, filters=filters, fields=fields, sort=sort) hits = models.massage_query_results(results) paginator = Paginator(hits, settings.RESULTS_PER_PAGE) page = paginator.page(request.GET.get('page', 1)) return render_to_response( 'ui/search/results.html', {'paginator': paginator, 'page': page, 'query': q, 'filters': filters, 'sort': sort,}, context_instance=RequestContext(request, processors=[]) )
def entities( self, index=0, size=DEFAULT_SIZE ): entities = [] results = elasticsearch.query(HOST, index=settings.DOCUMENT_INDEX, model='entity', query='id:"%s"' % self.id, fields=ENTITY_LIST_FIELDS, first=index, size=size, sort=ENTITY_LIST_SORT,) for m in massage_query_results(results): o = build_object(Entity(), m['id'], m) entities.append(o) return entities
def collections( self ): if not self._collections: self._collections = [] results = elasticsearch.query(HOST, index=settings.DOCUMENT_INDEX, model='collection', query='id:"%s"' % self.id, fields=COLLECTION_LIST_FIELDS, sort=COLLECTION_LIST_SORT,) for m in massage_query_results(results): o = build_object(Collection(), m['id'], m) self._collections.append(o) return self._collections
def files( self, index=0, size=DEFAULT_SIZE ): """Gets all the files in a collection; paging optional. """ files = [] results = elasticsearch.query(HOST, index=settings.DOCUMENT_INDEX, model='file', query='id:"%s"' % self.id, fields=FILE_LIST_FIELDS, first=index, size=size, sort=FILE_LIST_SORT) for m in massage_query_results(results): o = build_object(File(), m['id'], m) files.append(o) return files
def collections(self): if not self._collections: self._collections = [] results = elasticsearch.query( HOST, index=settings.DOCUMENT_INDEX, model='collection', query='id:"%s"' % self.id, fields=COLLECTION_LIST_FIELDS, sort=COLLECTION_LIST_SORT, ) for m in massage_query_results(results): o = build_object(Collection(), m['id'], m) self._collections.append(o) return self._collections
def files(self, index=0, size=DEFAULT_SIZE): """Gets all the files in a collection; paging optional. """ files = [] results = elasticsearch.query(HOST, index=settings.DOCUMENT_INDEX, model='file', query='id:"%s"' % self.id, fields=FILE_LIST_FIELDS, first=index, size=size, sort=FILE_LIST_SORT) for m in massage_query_results(results): o = build_object(File(), m['id'], m) files.append(o) return files
def entities(self, index=0, size=DEFAULT_SIZE): entities = [] results = elasticsearch.query( HOST, index=settings.DOCUMENT_INDEX, model='entity', query='id:"%s"' % self.id, fields=ENTITY_LIST_FIELDS, first=index, size=size, sort=ENTITY_LIST_SORT, ) for m in massage_query_results(results): o = build_object(Entity(), m['id'], m) entities.append(o) return entities
def files( self, index=0, size=DEFAULT_SIZE, role=None ): """Gets all the files in an entity; paging optional. @param index: start on this index in result set @param size: number of results to return @param role: String 'mezzanine' or 'master' """ files = [] query = 'id:"%s"' % self.id if role: query = 'id:"%s-%s"' % (self.id, role) results = elasticsearch.query(HOST, index=settings.DOCUMENT_INDEX, model='file', query=query, fields=FILE_LIST_FIELDS, first=index, size=size, sort=FILE_LIST_SORT) for m in massage_query_results(results): o = build_object(File(), m['id'], m) files.append(o) return files
def term_query(request, field, term): """Results of a search query. """ # prep query for elasticsearch terms_display = {'field': field, 'term': term} terms = {field: term} facet = faceting.get_facet(field) for t in facet['terms']: if t['id'] == term: try: terms_display['term'] = t['title_display'] except: terms_display['term'] = t['title'] break filters = {} fields = models.all_list_fields() sort = { 'record_created': request.GET.get('record_created', ''), 'record_lastmod': request.GET.get('record_lastmod', ''), } # do the query results = elasticsearch.query(settings.ELASTICSEARCH_HOST_PORT, settings.DOCUMENT_INDEX, term=terms, filters=filters, fields=fields, sort=sort) hits = models.massage_query_results(results) paginator = Paginator(hits, settings.RESULTS_PER_PAGE) page = paginator.page(request.GET.get('page', 1)) return render_to_response('ui/search/results.html', { 'paginator': paginator, 'page': page, 'terms': terms_display, 'filters': filters, 'sort': sort, }, context_instance=RequestContext(request, processors=[]))
def files(self, index=0, size=DEFAULT_SIZE, role=None): """Gets all the files in an entity; paging optional. @param index: start on this index in result set @param size: number of results to return @param role: String 'mezzanine' or 'master' """ files = [] query = 'id:"%s"' % self.id if role: query = 'id:"%s-%s"' % (self.id, role) results = elasticsearch.query(HOST, index=settings.DOCUMENT_INDEX, model='file', query=query, fields=FILE_LIST_FIELDS, first=index, size=size, sort=FILE_LIST_SORT) for m in massage_query_results(results): o = build_object(File(), m['id'], m) files.append(o) return files