Get a list of Symbols by searching a combination of 
        a Symbol's name, description, tags or meta values.

        Parameters
        ----------
        usrqry : str
            The string used to query.  Appending '%' will use SQL's "LIKE"
            functionality.
        name : bool, optional, default False
            Search by symbol name.
        desc : bool, optional, default False
            Search by symbol descriptions.
        tags : bool, optional, default False
            Search by symbol tags.
        meta : bool, optional, default False
            Search within a symbol's meta attribute's value.
        stronly : bool, optional, default True
            Return only a list of symbol names, as opposed
            to the (entire) Symbol objects.
        dolikelogic : 
            Append '%' to either side of the string, if the string
            doesn't already have % specified.
        
        Returns
        -------
        List of Symbols or empty list

def search(self, usrqry=None, name=False, desc=False, tags=False, meta=False, stronly=False, dolikelogic=True):
        """ Get a list of Symbols by searching a combination of 
        a Symbol's name, description, tags or meta values.

        Parameters
        ----------
        usrqry : str
            The string used to query.  Appending '%' will use SQL's "LIKE"
            functionality.
        name : bool, optional, default False
            Search by symbol name.
        desc : bool, optional, default False
            Search by symbol descriptions.
        tags : bool, optional, default False
            Search by symbol tags.
        meta : bool, optional, default False
            Search within a symbol's meta attribute's value.
        stronly : bool, optional, default True
            Return only a list of symbol names, as opposed
            to the (entire) Symbol objects.
        dolikelogic : 
            Append '%' to either side of the string, if the string
            doesn't already have % specified.
        
        Returns
        -------
        List of Symbols or empty list
        
        """
        if stronly:
            qry = self.ses.query(Symbol.name)
        else:
            qry = self.ses.query(Symbol)

        if tags:
            qry = qry.join(SymbolTag)
        if meta:
            qry = qry.join(SymbolMeta)
        
        if dolikelogic:
            if usrqry is not None:
                if '%' not in usrqry:
                    usrqry = '%' + usrqry + '%'
        
        crits = []
        if name:
            crits.append(Symbol.name.like(usrqry))
        if tags:
            crits.append(SymbolTag.tag.like(usrqry))
        if desc:
            crits.append(Symbol.description.like(usrqry))
        if meta:
            crits.append(SymbolMeta.value.like(usrqry)) 
        
        if len(crits):
            qry = qry.filter(or_(*crits))
        
        qry = qry.order_by(Symbol.name)

        if stronly:
            return [sym[0] for sym in qry.distinct()]
        else:
            return [sym for sym in qry.distinct()]