Esempio n. 1
0
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.")
Esempio n. 2
0
    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.