def search_products(database, query, new_database=None):
    """
    Description
    ----
    Search in the provided dictionary for a specific query. It
    specifically searches in the 'summary' key which can be found in
    equities, etfs and funds.

    Input
    ----
    database (dictionary)
        A dictionary that has data from the Database.
    query (string)
        The search term that is used to search in the dictionary.
    new_database (dictionary, default is None)
        If filled, is used to add data to based on the query.

    Output
    ----
    json_data (dictionary)
        Returns a dictionary with a selection based on the input.
    """
    if new_database is None:
        new_database = {}

    for symbol in database:
        try:
            if query in database[symbol]['summary']:
                new_database[symbol] = database[symbol]
        except (TypeError, KeyError):
            continue

    return new_database