def solr_print(args): from utils.db import session_autocommit from models import BearerToken from sqlalchemy.orm.exc import NoResultFound if args.bearertoken_id: print(" * Printing the content of the Solr index for bearertoken_id: {}".format( args.bearertoken_id)) with session_autocommit() as sex: try: bearertoken = sex.query(BearerToken).filter_by(id=args.bearertoken_id).one() except NoResultFound: print('There is no bearertoken_id {} in the database.'.format(args.bearertoken_id)) return provider_name = bearertoken.provider.name query = 'bearertoken_id:{}'.format(args.bearertoken_id) if args.provider: print(" * Printing the Solr index for provider: {}".format(args.provider)) provider_name = args.provider query = '*:*' solr = Solr(CORE_NAMES[provider_name]) r = solr.search(q=query) for doc in r.documents: del doc['content'] print(doc) print("\n * {} documents.".format(r.total_results)) print("Done.")
def search(self, q): bearertoken = BearerToken.objects.only( 'id').get(user=self.user, provider__name=self.provider_name) fq = 'bearertoken_id:{}'.format(bearertoken.id) solr = Solr(CORE_NAMES[self.provider_name]) r = solr.search(q=q, fq=fq, **self.extra_query_args) return r.documents # A list of dicts.